shell字符串变量的特异功能:字符串的替换(${str/源模式/目标模式},${str//源模式/目标模式})、截断

40 篇文章 0 订阅
29 篇文章 0 订阅

 shell字符串变量的特异功能${}:字符串的替换、截断

 

假如有shell字符串变量: file= "...."

一、shell变量字符串的替换功能:

       1. 首次出现替换:

                  ${file/源模式/目标模式}         #在file变量指代的字符串中,首次出现的匹配源模式的字符序列用目标模式替换。

        2. 全部替换:

                  ${file//源模式/目标模式}        #在file变量指代的字符串中,在对匹配源模式的所有字符序列处分别用目标模式替换。

二、shell变量字符串的截取

         1. 左截取

                    最小匹配截取:   ${file#模式}                      #模式必须和以行首字符为起始子字符串相匹配才能实现截取;否则,字符串原样输出。

                    最大匹配截取:   ${file##模式}                    #模式必须和以行首字符为起始子字符串相匹配才能实现截取;否则,字符串原样输出。

          (note: 这里的最大、最小匹配主要指包含通配符的模式, 如模式中包含 *, ?. and etc)

  应用举例:eg:

[wzb@embedded bin]$ file=*ab*de*cd*ab*de
[wzb@embedded bin]$ echo ${file#*a}
b*de*cd*ab*de
[wzb@embedded bin]$ echo ${file##*a}
b*de
[wzb@embedded bin]$ echo ${file##\*a}
b*de*cd*ab*de
[wzb@embedded bin]$ echo file
file
[wzb@embedded bin]$ echo $file
*ab*de*cd*ab*de
[wzb@embedded bin]$ echo ${file:a=f}
*ab*de*cd*ab*de
[wzb@embedded bin]$


 

         2. 右截取

                    最小匹配截取:   ${file%模式}                      #模式必须和以行尾字符为结束子字符串相匹配才能实现截取;否则,字符串原样输出。

                    最大匹配截取:   ${file%%模式}                    #模式必须和以行尾字符为结束子字符串相匹配才能实现截取;否则,字符串原样输出。

          (note: 这里的最大、最小匹配主要指包含通配符的模式, 如模式中包含 *, ?. and etc)

  应用举例:eg:

[wzb@embedded bin]$ echo $file
abcdabcdefg
[wzb@embedded bin]$ echo ${file%fg}
abcdabcde
[wzb@embedded bin]$ echo ${file%ef}
abcdabcdefg
[wzb@embedded bin]$ echo ${file%%efg}
abcdabcd
[wzb@embedded bin]$ echo ${file%%ef}
abcdabcdefg
[wzb@embedded bin]$ echo ${file%%a*g}

[wzb@embedded bin]$ echo ${file%a*g}
abcd
[wzb@embedded bin]$ echo ${file%%a*g}

[wzb@embedded bin]$


 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值