zoukankan      html  css  js  c++  java
  • [Shell]正则表达式与通配符

    正则表达式与通配符:

    1. 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。

    2. 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配。

    基础正则表达式:

    *      前一个字符匹配0次或任意多次

    .      匹配除了换行符外任意一个字符

    ^      匹配行首。^abc 即 匹配以abc开头的行

    $      匹配行尾。abc$ 即 匹配以abc结尾的行

    []      匹配中括号中指定的任意一个字符,只匹配一个字符。[aeiou]匹配任意一个元音字母,[0-9][a-z]匹配小写字母和一位数字构成的两位字符

    [^]     匹配除中括号内的字符以外的任意一个字符 注意一个字符

           转义符。用于将特殊符号的含义取消

    {n}    匹配其前面的字符恰好出现n次。[0-9]{2} 匹4位数字

    {n,}    匹配其前面的字符出现不小于n次。

    {n,m}    匹配其前面的字符至少出现n次,最多出现m次。[a-z]{6,8} 匹配6到8位的小写字母

    注意:

    * 在通配符中表示任意字符,在正则表达式中表示前一个字符匹配0次或任意多次。

    grep "a*" exp.txt    # 匹配所有内容,包括换行符(就是因为可以匹配0次)

    grep "aa*" exp.txt    # 匹配至少含有一个a的行

    grep "aaa*" exp.txt    # 匹配至少包含两个连续a的字符串

    grep "a..e" exp.txt    # 匹配在a和e之间有两个字符的词

    grep "s.*e" exp.txt    # 匹配在a和e之间有任意字符的词

    grep ".*" exp.txt    # 匹配所有内容

    grep "^M" exp.txt    # 匹配以M开头的行

    grep "n$" exp.txt    # 匹配以n结尾的行

    grep "^$" exp.txt -n    # 匹配所有空白行,-n可以显示行号

    grep "^[a-z]" exp.txt    # 匹配小写字母开头的行

    grep "a[bc]e" exp.txt    # 匹配abe 或 ace

    grep "^[^a-z]" exp.txt    # 匹配不以小写字母开头的行

    grep "[^a-zA-Z]" exp.txt    # 匹配除了字母之外的其它字符的行

    grep ".$" exp.txt    # 匹配以.结尾的行

    grep "a{2}" exp.txt    # 匹配a连续出现两次的行

    grep "[0-9]{2,}" exp.txt    # 匹配连续出现两个数字的行

    grep "ab{1,3}" exp.txt    # 匹配a后有1-3个b的行

  • 相关阅读:
    Nginx 模块开发(1)—— 一个稍稍能说明问题模块开发 Step By Step 过程
    nginx上传模块—nginx upload module-
    解决nginx上传模块nginx_upload_module传递GET参数
    nginx upload module的使用
    Nginx Upload Module 上传模块
    产品需求分析神器:KANO模型分析法
    SpringBoot @ConditionalOnBean、@ConditionalOnMissingBean注解源码分析与示例
    BAT、网易、京东等如何做大数据风控的?
    springboot 2.x 集成 drools 7.x
    Drools介绍与使用
  • 原文地址:https://www.cnblogs.com/wanglijun/p/8707589.html
Copyright © 2011-2022 走看看