shell中变量的替换和删除

2019-09-19 分类:shell, 基础内容 阅读(26) 评论(0)
变量表达式 说明
${变量#关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除
${变量##关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除
${变量%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除
${变量%%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除
${变量/旧字符串/新字符串} 若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换
${变量//旧字符串/新字符串} 若变量内容符合“旧字符串”,则全部的旧字符串会被新字符串替换

 

 

#&##举例:

[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

 

 

 

 

标签:

您可能也喜欢:

shell中$*和$@的区别

set 1 2 3 不加引号-----每个参数视为独立参数 [root@m01 ~]# for i in $*;do echo $i ;done 1 2 3 [root@m01 ~]# for i in $@;do echo $i ;done 1 2 3 加引号-----$*把所有参...

more

重定向2>,&>,1>,>….标准错误和标准输出

2>:标准错误 > or 1>:标准输出 &>:标准输出和标准错误     标准错误重定向到error.log,标准输出重定向到/dev/null ll 2> error.log > /dev/null     标准...

more

shell中sh、source、. 、./、执行脚本的区别

1.sh 不需要脚本执行权限,父shell不会继承脚本(子shell)中的变量 2.  ./ 需要脚本拥有执行权限,父shell不会继承脚本(子shell)中的变量 3.source和.是一样的 父shell继承脚本(子shell)中的变量 ...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

登录

忘记密码 ?

切换登录

注册