首页 > linux > bash 字符串 模式匹配操作符简介
2009六月3

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

呵,这回我应该能记住这些了吧?嗯。

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/06/03/753/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

4 Responses to “bash 字符串 模式匹配操作符简介”

  1. #1 Felix 回复 | 引用 Post:2009-06-04 19:32

    菜鸟飘过

    [回复]

  2. #2 simaopig 回复 | 引用 Post:2009-06-04 19:49

    @Felix
    呃。。欢迎你有一天飘回来。呵呵。 :cool:

    [回复]

  3. #3 LAONB 回复 | 引用 Post:2009-06-04 20:29

    这个我看不懂 :evil:

    [回复]

  4. #4 simaopig 回复 | 引用 Post:2009-06-04 21:21

    @LAONB
    那赶明,就挑个你能看懂的写。嘿嘿。

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)