shell中变量的替换和删除
警告
本文最后更新于 2020-05-30 17:09,文中内容可能已过时。
变量表达式 | 说明 |
${变量#关键字} | 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除 |
${变量##关键字} | 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除 |
${变量%关键字} | 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除 |
${变量%%关键字} | 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除 |
${变量/旧字符串/新字符串} | 若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换 |
${变量//旧字符串/新字符串} | 若变量内容符合“旧字符串”,则全部的旧字符串会被新字符串替换 |
##举例:
[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
请我喝杯水
微信号
微信打赏