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

原文https://blog.csdn.net/*nggui10000/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*}

会返回空

上一篇:STM32的优先级的理解及其使用


下一篇:阿里云服务器选择根据使用场景选择ECS实例规格对照表