美文网首页shell
【现学现忘&Shell编程】— 25.基础正则表达式

【现学现忘&Shell编程】— 25.基础正则表达式

作者: 繁华似锦Fighting | 来源:发表于2020-10-13 19:38 被阅读0次

    1、正则表达式说明

    正则表达式和通配符的区别

    • 正则表达式用来在文件中匹配符合条件的字符串。
    • 通配符用来匹配符合条件的文件名。

    在Shell中,使用在文件当中搜索字符串的命令,如grepawksed等命令(文本操作三剑客),可以支持正则表达式。

    而在系统当中搜索文件的命令,如lsfindcp这些命令不支持正则表达式,所以只能使用通配符来进行匹配了。

    • 在Shell中只要是匹配字符串,都适用于正则匹配。
    • 正则表达式匹配的是以一行为单位进行包含匹配的,匹配上就显示输出该行文本,否则不显示。

    2、基础正则表达式

    元字符 作用
    * 匹配前一个字符匹配0次或任意多次。
    . 匹配除了换行符外任意一个字符。
    ^ 匹配行首。例如:^hello会匹配以hello开头的行。
    $ 匹配行尾。例如:hello$会匹配以hello结尾的行。
    [] 匹配中括号中指定的任意一个字符,只匹配一个字符。
    例如:
    [aoeiu]匹配意一个元音字母,
    [0-9]匹配任意一位数字,
    [a-z][0-9]匹配小写字和一位数字构成的两位字符。
    [^] 匹配除中括号的字符以外的任意一个字符。
    例如:
    [^0-9]匹配任意一位非数字字符,
    [^a-z]表示任意一位非小写字母。
    \ 转义符。用于取消将特殊符号的含义取消。
    \{n\} 表示其前面的字符恰好出现n次。
    例如:
    [0-9]\{4\}匹配4位数字,
    [1][3-8][0-9]\{9\}匹配手机号码。
    \{n,\} 表示其前面的字符出现不小于n次。
    例如:
    [0-9]\{2,\}表示两位及以上的数字。
    \{n,m\} 表示其前面的字符至少出现n次,最多出现m次。
    例如:
    [a-z]\{6,8\}匹配6到8位的小写字母。

    注意:Shell语言不是一个标准的完整语言,在其他语言中的正则表达式中,是不分基础正则和扩展正则的。而Shell认为你不需要拿正则写太过复杂的字符串筛选格式,所以Shell建议把正则表达式分成基础正则和扩展正则两种。

    相关文章

      网友评论

        本文标题:【现学现忘&Shell编程】— 25.基础正则表达式

        本文链接:https://www.haomeiwen.com/subject/uxovpktx.html