SHELL脚本之子串

子串

变量子串

表达式 作用
${parameter} 返回变量$parameter的内容
${#parameter} 返回$parameter内容的长度(按字符,特殊变量也适用)
${parameter:offest} 在变量${parameter}中,从位置offest之后,提取子串到结尾
[root@bogon ~]# a="33 Svan is best"
[root@bogon ~]# echo ${a}
33 Svan is best
[root@bogon ~]# echo ${#a}  
15
[root@bogon ~]# echo ${a:4} 从第四个字符到结尾
van is best
表达式 作用
${parameter:offest:length} 在变量${parameter}中,从offest开始提取长度为length的子串
${parameter#word} 从开头删除最短匹配的子串
${parameter##word} 从开头删除最长匹配的子串
${parameter%word} 从结尾删除最短匹配的子串
${parameter%%word} 从结尾删除最长匹配的子串
${parameter/pattern/string} 从开头替换第一个匹配的pattern (1替换1,1换多,多换多,多换1)
${parameter//pattern/string} 从开头替换所有匹配的pattern
[root@bogon ~]# a="33 Svan is best" 
[root@bogon ~]# echo ${a:4:2} 从第4个字符开始截取长度为2的子串
va
[root@bogon ~]# b="abcdefgabcdbcde"
[root@bogon ~]# echo ${b#a*d} 从开头删除最短匹配的子串
efgabcdbcde
[root@bogon ~]# echo ${b##a*d} 从开头删除最长匹配的子串
e
[root@bogon ~]# echo ${b%c*e}  从结尾删除最短匹配的子串
abcdefgabcdb
[root@bogon ~]# echo ${b%%c*e}  从结尾删除最长匹配的子串
ab
[root@bogon ~]# echo ${b/a/A}   从开头替换第一个匹配的pattern
Abcdefgabcdbcde
[root@bogon ~]# echo ${b//a/A}  从开头替换所有匹配的pattern
AbcdefgAbcdbcde
[root@bogon ~]# echo ${b/ab/AB}  从开头替换第一个匹配的pattern
ABcdefgabcdbcde
[root@bogon ~]# echo ${b//ab/AB}  从开头替换所有匹配的pattern
ABcdefgABcdbcde
[root@bogon ~]# echo ${b/cd/F}    从开头替换第一个匹配的pattern
abFefgabcdbcde
[root@bogon ~]# echo ${b//cd/F}   从开头替换所有匹配的pattern
abFefgabFbFe
[root@bogon ~]# echo ${b/c/DD}    从开头替换第一个匹配的pattern
abDDdefgabcdbcde
[root@bogon ~]# echo ${b//c/DD}   从开头替换所有匹配的pattern
abDDdefgabDDdbDDde

版权声明:本文为weixin_43911375原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>