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

原文地址:https://www.cnblogs.com/dyllove98/p/3127407.html