Bash Shell字符串操作

版权声明:自由转载,请附链接 https://blog.csdn.net/kangkanglou/article/details/83378085

Bash字符串处理

var=“hello_world_icbc_cib”

  • 获取长度

${#string}

echo ${#var}

  • 字符串截取

${string:position}

${string:position:length}

#
echo ${var:0:2}
#
echo ${var:2}
#
echo ${var:0-4:3}
#
echo ${var:0-4}

  • 最短字串匹配

${string#substring},从左到右,删除匹配子串substring的最短字符,保留右侧字符。

${string%substring},从右到左,删除匹配字串substring的最短字符,保留左侧字符

#
echo ${var#*_}
#
echo ${var%_*}

  • 最长字串匹配

${string##substring},从左到右,删除匹配子串substring的最长字符,保留右侧字符。

${string%%substring},从右到左,删除匹配字串substring的最长字符,保留左侧字符

#
echo ${var##*_}
#
echo ${var%%_*}

  • 字符替换

${string/pattern/replacement},只替换第一个匹配的字符

${string//pattern/replacement},替换所有匹配字符

#
echo ${var/ic*_/ccb_}
#
echo ${var/i/I}
#
echo ${var//i/I}

  • 替换开始和结束

${string/#pattern/replacement},只有当字串string以pattern开头,才执行对应替换。

${string/%pattern/replacement},只有当字串string以pattern结尾,才执行对应替换。

filename="/home/test/str.sh"
echo "replace at the beginning: "${filename/#\/home/\/begin}
echo "replace at the ending: "${filename/%.*/.txt}

代码段

#!/bin/bash

var="hello_world_icbc_cib"
#
echo ${#var}
#
echo ${var#*_}
#
echo ${var##*_}
#
echo ${var%_*}
#
echo ${var%%_*}
#
echo ${var:0:2}
#
echo ${var:2}
#
echo ${var:0-4:3}
#
echo ${var:0-4}
#
echo ${var/ic*_/ccb_}
#
echo ${var/i/I}
#
echo ${var//i/I}

#
filename="/home/test/str.sh"
echo "replace at the beginning: "${filename/#\/home/\/begin}
echo "replace at the ending: "${filename/%.*/.txt}

echo "bye..."


执行结果

在这里插入图片描述

https://www.thegeekstuff.com/2010/07/bash-string-manipulation/

猜你喜欢

转载自blog.csdn.net/kangkanglou/article/details/83378085
今日推荐