shell 字符串操作
string="abcABC123ABCabc"
字符串长度:
echo ${#string}
#15
echo `expr length $string`
#15
索引
用法:expr index $string $substring
expr index $string "ABC"
#4
提取子串
用法:${string:position}
echo ${string:3}
#ABC123ABCabc
提取指定长度子串
用法:${string:position:length}
echo ${string:3:3}
#ABC
从末尾提取子串
用法:
${string: -length}注意有空格
${string:(-length)}
echo ${string:(-3)}
#abc
子串剔除
从左边开始截吊第一个匹配的$substring
用法:${string#*substring}
echo ${string#*abc}
#ABC123ABCabc
substr="abc";echo ${string#*$substr}
##ABC123ABCabc
从左边开始截吊最后一个匹配的$substring
echo ${string##*abc}
#
从右边开始截吊第一个匹配的$substring
用法:${string%substring*}
echo ${string%abc*}
#abcABC123ABC
从右边开始截吊最后一个匹配的$substring
echo ${string%%abc*}
#
子串替换
用$replacement来替换第一个匹配的$substring
用法:${string/substring/replacement}
echo ${string/ABC/XYZ}
#abcXYZ123ABCabc
用$replacement来替换全部匹配的$substring
用法:${string//substring/replacement}
echo ${string//ABC/XYZ}
#abcXYZ123XYZabc
如果$substring匹配$string的开头部分,那么就用$replacement来替换
用法:${string/#substring/replacement}
echo ${string/#abc/xyz}
#xyzABC123ABCabc
如果$substring匹配$string的结尾部分,那么就用$replacement来替换
用法:${string/%substring/replacement}
echo ${string/%abc/xyz}
#abcABC123ABCxyz