Linux字符串

子串查询

  • 从某个位置开始提取(下标从0开始)
[root@localhost update]# string="hello world"
[root@localhost update]# echo ${string:1}
ello world
[root@localhost update]#
  • 从指定位置提取指定长度的子串
[root@localhost update]#  string="hello world"
[root@localhost update]#
[root@localhost update]# echo ${string:1:2}
el

子串匹配删除

  • 从左非贪婪匹配删除
[root@localhost update]# string="hello world, hello jim"
[root@localhost update]# echo ${string#*hello}
world, hello jim
  • 从左贪婪匹配删除
[root@localhost update]# string="hello world, hello jim"
[root@localhost update]# echo ${string##*hello}
jim
[root@localhost update]# string="hello world, hello*jim"
[root@localhost update]# echo ${string##*hello}
*jim
[root@localhost update]# string="hello world, hello *jim"
[root@localhost update]# echo ${string##*hello}
*jim
  • 从右非贪婪匹配删除
[root@localhost update]# string="hello world, hello jim"
[root@localhost update]# echo ${string%hello*}
hello world,
  • 从右贪婪匹配删除
[root@localhost ~]# string="#hello world, hello jim"
[root@localhost ~]# echo ${string%%hello*}
#
[root@localhost ~]#

子串替换

  • 替换出现的第一次
[root@localhost ~]# string="hello world, hello jim"
[root@localhost ~]#
[root@localhost ~]# echo ${string/hello/goodbye}
goodbye world, hello jim
  • 替换出现的所有子串
[root@localhost ~]# string="hello world, hello jim"
[root@localhost ~]#
[root@localhost ~]# echo ${string//hello/goodbye}
goodbye world, goodbye jim

参考:
​​​参考博文1​