shell(bash)替换字符串大全
1. 替换(只替换一个)
用varrB=${varA/str1/str2}
$ var="AAAszip_BBB.zip";var2=${var/zip/ZIP};echo $var2};AAAsZIP_BBB.zip$ var="AAAszip_BBB.zip";var2=${var/.zip/.ZIP};echo $var2;AAAszip_BBB.ZIP
1. 替换(替换所有)
用varB=${varA//str1/str2}
$ var="AAAszip_BBB.zip";var2=${var//zip/ZIP};echo $var2;AAAsZIP_BBB.ZIP
3. 替换(替换开头一个)
用varB=${varA/#str1/str2}
$ var=".zipAAAszip_BBB.zip_CCC";var2=${var/#.zip/.ZIP};echo $var2;.ZIPAAAszip_BBB.zip_CCC
不存在
varB=${varA//#str1/str2}
4. 替换(替换结尾一个)
用varB=${varA/%str1/str2}
$ var="AAAszip_BBB.zip_CCC.zip";var2=${var/%.zip/.ZIP};echo $var2;AAAszip_BBB.zip_CCC.ZIP
不存在
varB=${varA//%str1/str2}
而且可以很好地匹配到“.”点号
5. 截取,删除右边,保留左边,从右起最短匹配
用$varB=${varAa%<pattern>}
,
$ a="aaa=bbb";b=${a%=*};echo $baaa$ a="http://localhost:3000/china/shanghai.html";b=${a%/*};echo $bhttp://localhost:3000/china
6. 截取,删除右边,保留左边,从右起最长匹配
用$varb=${vara%%<pattern>}
从右起最长匹配
$ a="http://localhost:3000/china/shanghai.html";b=${a%%/*};echo $bhttp:
7. 截取,删除左边,保留右边,从左起最短匹配
用$varb=${vara#<pattern>}
$ a="aaa=bbb";b=${a#*=};echo $bbbb$ a="http://localhost:3000/china/shanghai.html";b=${a#*/};echo $b/localhost:3000/china/shanghai.html
8. 截取,删除左边,保留右边,从左起最长匹配
用$varb=${vara##<pattern>}
从左起最长匹配
$ a="http://localhost:3000/china/shanghai.html";b=${a##*/};echo $bshanghai.html