shell中变量的替换和删除

变量表达式 说明
${变量#关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除
${变量##关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除
${变量%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除
${变量%%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除
${变量/旧字符串/新字符串} 若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换
${变量//旧字符串/新字符串} 若变量内容符合“旧字符串”,则全部的旧字符串会被新字符串替换

 

 

#&##举例:

[root@apache ~]# echo $str
123/456/78/9/1

#从前往后匹配,删除匹配的最短的内容-->“123/”
[root@apache ~]# echo ${str#*/}
456/78/9/1

#从前往后匹配,删除匹配的最长的内容-->“123/456/78/9/” 
[root@apache ~]# echo ${str##*/} 1 

 

%&%%举例:

[root@apache ~]# echo $str
123/456/78/9/1

#从后向前匹配,删除匹配最短的部分-->“/1”
[root@apache ~]# echo ${str%/*} 
123/456/78/9

#从后向前匹配,删除匹配最长的部分-->“/456/78/9/1”
[root@apache ~]# echo ${str%%/*}
123

 

/&//举例:

[root@apache ~]# echo $str
123/123/234/123/1

#替换123为000
[root@apache ~]# echo ${str/123/000}
000/123/234/123/1

#替换所有123为000
[root@apache ~]# echo ${str//123/000}
000/000/234/000/1

 

 

 

 

Tags:shell
上一篇
下一篇

添加新评论