shell(bash)替换字符串大全

| |
[不指定 2023/08/16 11:13 | by 刘新修 ]

1. 替换(只替换一个)

varrB=${varA/str1/str2}

C#代码
  1. $ var="AAAszip_BBB.zip";var2=${var/zip/ZIP};echo $var2};  
  2. AAAsZIP_BBB.zip  
  3. $ var="AAAszip_BBB.zip";var2=${var/.zip/.ZIP};echo $var2;  
  4. AAAszip_BBB.ZIP  

2. 替换(替换所有)

varB=${varA//str1/str2}

C#代码
  1. $ var="AAAszip_BBB.zip";var2=${var//zip/ZIP};echo $var2;  
  2. AAAsZIP_BBB.ZIP  

3. 替换(替换开头一个)

varB=${varA/#str1/str2}

C#代码
  1. $ var=".zipAAAszip_BBB.zip_CCC";var2=${var/#.zip/.ZIP};echo $var2;  
  2. .ZIPAAAszip_BBB.zip_CCC  

不存在
varB=${varA//#str1/str2}

4. 替换(替换结尾一个)

varB=${varA/%str1/str2}

C#代码
  1. $ var="AAAszip_BBB.zip_CCC.zip";var2=${var/%.zip/.ZIP};echo $var2;  
  2. AAAszip_BBB.zip_CCC.ZIP  

不存在
varB=${varA//%str1/str2}

而且可以很好地匹配到“.”点号

5. 截取,删除右边,保留左边,从右起最短匹配

$varB=${varAa%<pattern>}

C#代码
  1. $ a="aaa=bbb";b=${a%=*};echo $b  
  2. aaa  
  3. $ a="http://localhost:3000/china/shanghai.html";b=${a%/*};echo $b  
  4. http://localhost:3000/china  

6. 截取,删除右边,保留左边,从右起最长匹配

$varb=${vara%%<pattern>}从右起最长匹配

C#代码
  1. $ a="http://localhost:3000/china/shanghai.html";b=${a%%/*};echo $b  
  2. http:  

7. 截取,删除左边,保留右边,从左起最短匹配

$varb=${vara#<pattern>}

C#代码
  1. $ a="aaa=bbb";b=${a#*=};echo $b  
  2. bbb  
  3. $ a="http://localhost:3000/china/shanghai.html";b=${a#*/};echo $b  
  4. /localhost:3000/china/shanghai.html  

8. 截取,删除左边,保留右边,从左起最长匹配

$varb=${vara##<pattern>}从左起最长匹配

C#代码
  1. $ a="http://localhost:3000/china/shanghai.html";b=${a##*/};echo $b  
  2. shanghai.html  
Linux/Unix | 评论(0) | 引用(0) | 阅读(363)