4.grep与正则表达式

grep与正则表达式

1、grep程序

    Linux文本处理三剑客 -- grep  sed  awk

    grep:文本  行过滤工具

    sed:文本行编辑器(流编辑器)

    awk:报告生成器,(做文本输出格式化)

 

    grep

      包含三个命令:grep  egrep  fgrep  ,用来进行 行模式(pattern)匹配

      egrep = grep -E //使用扩展的正则表达式进行匹配

      fgrep = fast grep  //只使用文件通配符进行匹配

      *grep默认使用正则表达式进行文本匹配*

    grep的用法:

      grep [option]...PATTERN  [filename]

    grep的常见选项 -- option

      -E  支持使用扩展的正则表达式(ERE) (regexp)

      -P  使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed  grep  wak使用的regexp引擎也不相同)

      -i  忽略大小写

      -v  进行反选

      -o  仅仅输出匹配的内容(默认输出的是匹配的行)

      --color=auto  语法着色

      -n  显示行号

      -w  匹配固定单词

   

    PATTERN--正则表达式

      作用:通过一些特殊字符,来表示一类字符内容,然后交给前面命令来执行;如果使用特殊字符本身的含义,就需要 \ 进行转义。

      文件通配符(globbing)

        *  ?  [ ]  [^ ]

      1、字符匹配

        .  任意一个字符  ?

        []  范围内的任意一个字符

        [^ ]  范围外任意一个字符

      2、次数匹配

        *  匹配前面的字符0次到无数次

        ?匹配前面的字符0次到1次

        +  匹配前面的字符1次到无数次

        \{m\}  匹配前面的字符m次

        \{m,n\}  匹配前面的字符m到n次

        \{0,n\}  匹配前面的字符0次到n次

        \{m,\}  匹配前面的字符至少m次

      3、位置锚定

        ^  锚定行首

        $  锚定行尾

        \b  锚定词首和锚定词尾

        \>  锚定词尾

        <\  锚定词首

      4、分组

        \(\)  示例:\(abc\)*  abcabcabc  abcccc

        **分组特性:默认情况下,Linux系统会分为分组指定变量,变量的表示形式 \1 \2 \3...

      

      扩充:扩展的正则表达式

        【标准正则表达式中的 \ 都可以去掉】

        分组:()  后向引用  \1 \2 \3 ...

        或:|

          示例:

 

posted on 2019-08-14 11:30  Rubyonly  阅读(334)  评论(0)    收藏  举报