grep命令详解

   grep命令是*nix上匹配行的一个工具,可以用来搜索匹配的行,对于查找指定字符和字符行非常好用,grep非常有效grep家族包含grep,egrep,fgrep,

grep使用的是基本元字符,egrep使用的是扩展正则表达式,,可以使用grep -E来使用egrep,使用grep -F来使用fgrep,或者直接使用egrep,fgrep,一般

来说grep,egrep比较常用,较少使用fgrep.下面来主要介绍grep和egrep.

     语法格式为      grep [OPTIONS] PATTERN [FILE...]

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


grep的常用选型

        -i: 不区分大小写

         -n: 匹配行显示行号

         -v: 反向匹配,显示不匹配的行

         -w:匹配字母和数字

         -c:显示匹配的行数

         --color:用颜色显示匹配到的字符

         -o:仅显示匹配的字符

         -A:显示匹配的后几行

         -B:显示匹配的前几行

         -C:显示匹配的上下几行

基本元字符

       ^ :锚定行首

       $ :锚定行尾

       . :零个或一个字符

       * :一个字符

       []: 里面任一字符

       [^]:非^后的字符

       \(..\)  后向引用

       \<   :锚定字符

       x\{m\}  字符x出现m次

       x\{m,\}  字符m大于m次

       x\{m,n\}  字符出现大于等于m次小于n次

       \w :匹配单词

       \W  

       \b 匹配单词词首或词尾

扩展元字符
        ?  :0个或1个前面字符
        +  :1个或多个前面字符
        () :一个表达式,可以用来后向引用  
        |  :左右两边或者,表示选择

POSIX字符类

[:alnum:]

文字数字字符

[:alpha:]

飞数字字符字符

[:digit:]

数字字符

[:graph:]

非空字符(非空格、控制字符)

[:lower:]

小写字符

[:cntrl:]

 控制字符

[:print:]

非空字符(包括空格)

[:punct:]

标点符号

[:space:]

所有空白字符(新行,空格,制表符)

[:upper:]

大写字符

[:xdigit:]

十六进制字符

实例