一,字符串的截取
1,从待处理字符串左边开始数起,截掉发现的第一个匹配字符或匹配字符串及其左边内容的操作。
格式1,${"待处理字符串"+"#"+"*"+"匹配字符"}
格式2,${"待处理字符串"+"#"+"*"+"匹配字符串"}
示例1 如果string="/home/user/dir1/dir2/test.txt"
value=${string#*/}
value得到的结果:home/user/dir1/dir2/test.txt
示例2 如果string="---123---456--789"
value=${string#*---}
value得到的结果:123---456---789
2,从待处理字符串左边开始数起,截掉发现的最后一个匹配字符或匹配字符串及其左边内容的操作。
格式1,${"待处理字符串"+"##"+"*"+"匹配字符"}
格式2,${"待处理字符串"+"##"+"*"+"匹配字符串"}
示例1 如果string="/home/user/dir1/dir2/test.txt"
value=${string#*/}
value得到的结果:test.txt
示例2 如果string="---123---456---789"
value=${string##*---}
value得到的结果:789
3,从待处理字符串右边开始数起,截掉发现的第一个匹配字符或匹配字符串及其右边内容的操作。
格式1,${"待处理字符串"+"%"+"匹配字符"+"*"}
格式2,${"待处理字符串"+"%"+"匹配字符串"+"*"}
示例1 如果string="/home/user/dir1/dir2/test.txt"
value=${string%/*}
value得到的结果:/home/user/dir1/dir2
示例2 如果string="---123---456---789"
value=${string%---*}
value得到的结果:---123---456
4,从待处理字符串右边开始数起,截掉发现的最后一个匹配字符或匹配字符串及其右边内容的操作。
格式1,${"待处理字符串"+"%%"+"匹配字符"+"*"}
格式2,${"待处理字符串"+"%%"+"匹配字符串"+"*"}
示例1 如果string="root/home/user/dir1/dir2/test.txt"
value=${string%%/*}
value得到的结果:root
示例2 如果string="000---123---456---789"
value=${string%%---*}
value得到的结果:000
二,字符串的提取
从待处理字符串中提取自m 下标开始的 n 个字符。
格式:${"待处理字符串"+":"+"m"+":"+"n"}
示例1 如果string="123456789"
value=${string:0:3}
value得到的结果:123
示例2 如果string="102030405060"
value=${string:1:5}
value得到的结果:02030
三,字符串的替换
1,从待处理字符串左边开始数起,将待处理字符串string 中出现的第一个 dir 被替换为 path。
格式: ${string/dir/path}
示例 如果string="/home/user/dir1/dir2/test.txt"
value=${string/dir/path}
value得到的结果:/home/user/path1/dir2/test.txt
2,将待处理字符串string 中出现的所有 dir 被替换为 path。
格式: ${string//dir/path}
示例 如果string="/home/user/dir1/dir2/test.txt"
value=${string//dir/path}
value得到的结果:/home/user/path1/path2/test.txt