Linux之文本搜索工具grep

grep功能:根据模式搜索文本,并将符合模式的文本行显示出来

PATTERN:模式,即文本字符和正则表达式的元字符组合而成的匹配条件

1 通配符:

        *:任意长度的任意字符

        ?:任意单个字符

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

        [^]:与[]相反

2 正则表达式:

    元字符:

        .:匹配任意单个字符

        *:匹配次数(工作在贪婪模式下,尽可能长的匹配),

          匹配其前面的字符任意个

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

        \?:匹配其前面的字符1次或0次

        \{m,n\}:匹配其前面的字符至少m次,至多n次

           \{1,\}:匹配其前面的字符至少1次

        位置锚定:

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

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

            ^$:空白行

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

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

        分组

            \(string\):string当做一组字符,一个整体,用于后向引用

            后向引用

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

            \2

            \3

grep基本用法:

    grep [OPTIONS] PATTERN [FILE...]

       OPTIONS

          -i:忽略大小写

          --color:将搜索到的字符标色显示出来

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

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

          -A #:表示grep匹配到的行及之后的#行

          -B #:表示grep匹配到的行及之前的#行

          -C #:表示grep匹配到的行及前后的#行

          -E:匹配扩展正则表达式

扩展正则表达式 egrep

    次数匹配

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

    分组

        ():括号内的为一个整体