linux下egrep文件内容搜索工具及扩展正则表达式详解

egrep命令: 根据模式(文本字符和扩展正则表达式的元字符组合而成之匹配条件)搜索文本,

        并将符合模式的文本行显示出来。

       格式:egrep [选项] 匹配条件 文本名称

        egrep 等于 grep -E

选项:  -i:  忽略大小写

      -v: 显示没有被模式匹配到的行

       -o:只显示被模式匹配到的字符串

    --color: 搜索出来文件高亮度显示

       -A: 匹配指定行的下几行

       -B: 匹配指定行的上几行

       -C: 匹配指定行的上下几行

正则表达式:Regular Expression, 简称REGEXP

 元字符

    .: 匹配任意单个字符

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

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

例如:特殊字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:],                   [:alnum:]

 匹配次数

   *: 匹配其前面的字符任意次

   .*: 任意长度的任意字符

   ?: 匹配其前面的字符1次或0次,并不像基本正则表达式,无需加\

   +:匹配其前面的字符至少1次

  {a,d}:匹配其前面的字符至少a次,至多d次,并不像基本正则表达式,无需加\

    例如:{1} 表示:前面字符匹配1次

       {0,6} 表示: 前面字符至少匹配0次,最多6次

  位置锁定或叫锚定

    ^: 锁定行首,此字符后面的任意内容必须出现在行首

       举例说明:显示/etc/passwd文件中r开头的行

         egrep '^r' /etc/passwd

   $: 锁定行尾,此字符前面的任意内容必须出现在行尾

       举例说明:显示/etc/passwd文件中bash结尾的行

         egrep 'bash$' /etc/passwd

   ^$: 表示 空白行

  \<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现

  \>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现

    举例说明:显示/etc/passwd文件中以root开头并以root词结尾的行

        egrep '^root\>' /etc/passwd

 分组:( ) 并不像基本正则表达式,无需加\

   例如:(mn)* 表示匹配任意mn组合字符

   后向引用

    \1:  引用第一个左括号以及与之对应的右括号所包括的所有内容

    \2: 引用第二个左括号以及与之对应的右括号所包括的所有内容

    \n: 引用第n个左括号以及与之对应的右括号所包括的所有内容

 或者: |

举例说明:

1.D|dog 代表D和dog,而不是Dog和dog

2.找出/boot/grub/grub.conf文件中1-255之间的数字

  egrep --color  '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'           /boot/grub/grub.conf 

wKiom1cMheHjDdXWAAG85_y-2OA660.jpg      3.找出ifconfig命令中的ip地址:再提示一下,egrep 等于 grep -E

   ifconfig | grep --color -E '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'

wKioL1cMh_azzWHJAAGNRTnZvvI126.jpg