grep、egrep及相应的正则表达式和用法

     grep系:grep,egrep,fgrep,文本搜索工具,基于PATTERN对于给定的文本进行模糊搜索,grep系默认工做于贪婪模式下。git

 grep:正则表达式

  grep [OPTIONS] PATTERN [FILE...]ide

 

  PATTERN:过滤条件,是由正则表达式元字符以及没有特殊含义的文本字符组成。工具

  正则表达式元字符:ui

  会被正则表达式引擎解释为特殊含义。 pcre——perl语言的正则表达式引擎。spa

   基本的正则表达式:BREregexp

   扩展的正则表达式:ERE字符串

   grep默认仅支持基本正则表达式string

   egrep默认仅支持扩展正则表达式it

   fgrep默认不开启正则表达式引擎

 

  文本字符:

  只具有字符片面含义的那些字符

 

  经常使用选项:

 

   -i, --ignore-case  忽略文本字符的大小写

   -v, --invert-match  反向匹配,最终显示的结果是PATTREN不能匹配的行

   -c, --count  统计匹配PATTERN的全部的行数

   -o, --only-matching  关闭贪婪模式,仅显示PATTERN能匹配的内容

   -q, --quiet, --silent  不输出任何匹配结果

   --color[=WHEN], --colour[=WHEN]    将匹配的PATTREN的内容以特殊颜色显示

   -E, --extended-regexp  扩展的正则表达式 grep-E 至关于egrep

   -F, --fixed-strings, --fixed-regexp  至关于fgrep

   -G, --basic-regexp  基本的正则表达式,egrep -G至关于grep

   -P, --perl-regexp  使用PCRE引擎

   -A NUM, --after-context=NUM  在显示匹配PATTERN的行同时显示其后面的NUM行

   -B NUM, --before-context=NUM

 

   PATTERN;

    正则表达式元字符:

 

      基本正则表达式元字符:

      GLOBBING-------简化版的正则表达式: []  ?  *

 

       字符匹配:

        .:匹配任意单个字符

        []:匹配指定范围内的任意单个字符

        [^]:匹配指定范围之外的任意单个字符

        下列全部的字符集均可以放置于[]之中匹配单个字符

        [:lower:]

        [:upper:]

        [:alpha:]

        [:digit:]

        [:space:]  空格

        [:alnum:]

        [:punct:]

        [:blank:]

        [:xdigit:]:全部的十六进制数字

        a-z:全部的小写字母

        A-Z:全部的大写字母

        0-9:全部的十进制数字

 

 

       次数匹配: 该类字符以前的那个字符能够出现的次数

         *:其前面的字符能够出现任意次(0次,1次或屡次)

         \?:其前面的字符无关紧要(0次或一次)

         \+:其前面的字符至少出现一次(1次或屡次)

         \{m\}:其前面的字符必须出现m次

         \{m,n\}:至少出现m次,至多出现n次  (m<n)

         \{,n\}:其前面字符至多出现n次,至少出现0次

         \{m,\}:其前面字符至少出现m次

 

        在正则表达式中,表示任意长度任意字符的方式:.*

 

 

        位置锚定字符:

           行锚定:

            行首锚定:^

            行尾锚定:$

           字锚定:

             字首锚定:\<或\b

             字尾锚定:\>或\b

             \b:旧版本中的锚定方法,建议不使用

 

             对于正则表达式的引擎来讲,字是由特殊字符组成的连续字符串

 

 

 

           分组与引用字符:

            \(PATTERN\):将此PATTERN所匹配到的全部字符当作一个不可分割的总体来处理。

 

             在正则表达式引擎中,有一系列内置变量,这些变量会保存全部分组内的字符信息,用于反向引用,这些变量依次是:\1,\2,\3...

             ..

 

           

           或:

 

             \|

             注意:\|将其左右两边的字符串当总体对待。

 

             A\|american:A或american

             请找出ifconfig命令中数值在100-255之间的整数:

               第一位:1     2

               第二位:0-9   0-4    5

               第三位:0-9   0-9    0-5

               ifconfig | grep '\<\(1[0-9][0-9]\|2[0-4][0-9]\|25[0-5]\)\>'

 

 

 

              grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

 

                默认状况下,grep命令后面只容许有一个PATTERN;

                若是想要在依次grep搜索中写多个PATTERN,则须要-e选项,每一个-e选项只能使用一个PATTERN做为参数;

                将所须要的PATTERN写入到一个文件中,保证每行只有一个PATTERN,咱们就可使用-f的方式实现多PATTERN的匹配;

 

 

       egrep:     下列用法和grep同样

 

 

       扩展的正则表达式元字符:

         字符匹配:

           .

           []

           [^]

          次数匹配:

          *

          ?

          +

          {m}

          {m,n}

          {m,}

          {0,n}

 

          位置锚定:

          ^

          $

          \<,\b

          \>,\b

 

          分组和引用:

          ()

          \1,\2,\3...

 

          或:

          |

相关文章
相关标签/搜索