shell中字符串操作主要有以下几种,其中:pattern ,old中可以使用通配符:
${#var} :返回字符串变量var的长度
${var:m} :返回${var}中从第m+1个字符到最后的部分,其中m的取值从0到${#var}-1
${var:m:len}:返回${var}中从第m+1个字符开始,长度为len的部分
[root@tlinux shell]# var=abcdefg [root@tlinux shell]# echo ${#var} 7 [root@tlinux shell]# echo ${var:2} cdefg [root@tlinux shell]# echo ${var:2:3} cde
${var#pattern}:删除${var}中开头部分与pattern匹配的最小部分(剩余部分)
${var##pattern}:删除${var}中开头部分与pattern匹配的最大部分
${var%pattern}:删除${var}中结尾部分与pattern匹配的最小部分
${var%%pattern}:删除${var}中结尾部分与pattern匹配的最大部分
1 #! /bin/bash 2 3 var="/aa/bb/cc" 4 5 result1=${var#*/} 6 result2=${var##*/} 7 result3=${var%/*} 8 result4=${var%%/*} 9 echo $var 10 11 echo '${var#*/}='$result1 12 echo '${var##*/}='$result2 13 echo '${var%/*}='$result3 14 echo '${var%%/*}='$result4 ~ /aa/bb/cc ${var#*/}=aa/bb/cc ${var##*/}=cc ${var%/*}=/aa/bb ${var%%/*}=
${var/old/new}:用new替换${var}中第一次出现的old
${var//old/new}:用new替换${var}中所有的old(全局替换)