Linux Bash Shell字符串分割substring等(转)

原文https://blog.csdn.net/wuyinggui10000/article/details/52779364

脚本开发中遇到的问题是:原java中的字符串分割操作(substring indexOf等)不知道怎么处理(比如/a/b/c/d.txt我想知道文件的名称)

查询相关资料得知,shell中可以采用标识符来做分割字符串,包括substring(0,index)和substring(index,last)

${var#*substr}会删除从0到substr子字符串最后出现的位置

${var##*substr}会删除substr开始到字符串结束的位置

${var%substr*}会删除字符串最后一次出现到字符串结束的位置的部分

${var%%substr*}会删除字符串第一次出现到结束的部分

  1. a="/a/b/c/d.txt"  
  2. b="/"  
  3. echo ${a#*$b}  

会返回

a/b/c/d.txt

 

  1. a="/a/b/c/d.txt"  
  2. b="/"  
  3. echo ${a##*$b}  


会返回

d.txt

  1. a="/a/b/c/d.txt"  
  2. b="/"  
  3. echo ${a%$b*}  

会返回

/a/b/c

 

  1. a="/a/b/c/d.txt"  
  2. b="/"  
  3. echo ${a%%$b*}  


会返回空

 

posted on 2018-06-08 10:41  devilwind  阅读(1925)  评论(0编辑  收藏  举报