bash 字符串 模式匹配操作符简介

看到这个“模式”一词,你是不是想起了强大的“正则表达式”?

今天我要介绍的”bash的模式匹配”,虽然不是正则表达式,但是功能却也不俗,绝对可以让你收获颇多,

模式是可能包含任意字符的字符串(用于字符设置和范围的*,?和[])

下面,将列出bash shell模式匹配操作符:

  • ${variable#pattern}:
    如果模式匹配变量取值的开头,删除最短的匹配部分,并返回其余部分

     

  • ${variable##pattern}:
    如果模式匹配变量取值的开头,删除最长的匹配部分,并返回其余部分

     

  • ${variable%pattern}:
    如果模式匹配变量取值的结尾,删除最短的匹配部分,并返回其余部分

     

  • ${variable%%pattern}:
    如果模式匹配变量取值的结尾,删除最长的匹配部分,并返回其余部分

     

  • ${variable/pattern/string}:
    ${variable//pattern/string}:

     

    将variable中匹配模式的最长部分替换为string,第一种格式中,只有第一个匹配部分会被替换,而第二种模式中,所有的匹配部分均被替换。

    如果模式以#开头,则必须匹配variable的开头,如果模式以%开头,则必须匹配variable的结尾
    如果string为null,匹配部分将被删除,如果variable为@或*,操作被依次应用于每个位置参数并且扩展为结果列表

依次举例如下:

假如path取值为/home/simaopig/demo/log.file.name,则

$(path##/*/)log.file.name
$(path#/*/)simaopig/demo/log.file.name
$path/home/simaopig/demo/log.file.name
${path%.*}/home/simaopig/demo/log.file
${path%%.*}/home/simaopig/demo/log

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值