Linux初级运维(四)——grep的用法及正则表达式

一、grep的定义

        Grep的全写:(global search regular expression(RE)and print out the line),全面搜索正则表达式并把行打印出来。是一个可以从文件或流中查找字符串的一个命令行工具,它可以通过使用正则表达式来更灵活的查找一个字符串,就是通过复杂的模式进行查找已满足你的需求。

        grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep、fgrep。

二、grep的语法及其用法

        grep [options] PATTERN [FILE...]

            -i :表示忽略字符大小写

            --color :加颜色

            image.png

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

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

        image.png

三、正则表达式

        正则表达式,又称规则表达式。(Regular Expression,在代码中常简写为regex、regexp或RE)。正则表达式通常被用来检索、替换那些符合某个(规则)的文本。

        正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个规则字符串用来表达对字符串的一种过滤逻辑。

    1、元字符

       (1) . : 匹配任意单个字符

        image.png

        (2)表示字符个数的元字符

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

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

        image.png

        (3)问号的使用

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

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

        (4)位置锚定:

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

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

        image.png

        ^$ :空白行

        image.png

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

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

        image.png

        (5)分组:

        \(\) 

        image.png


四、正则表达用法

        正则表达式分为两类:Basic REGEXP (基本正则表达式) ; Extended REGEXP :扩展正则表达式

        (1)基本正则表达式元字符:

        . :任意单个字符

        [] :指定范围内的任意字符

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

        

        次数匹配:

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

        \?:表示匹配其前的字符是可有可无的

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


    grep:使用基本正则表达式定义的模式来过滤文本的命令。

        

五、扩展正则表达式

        字符匹配:

     . :匹配任意单个字符

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

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


        次数匹配:

     *:表示匹配其前字符任意次

    ?:表示匹配其前字符0次或1次

    +:表示匹配其前字符至少1次

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


    位置锚定:

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

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

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

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

  

猜你喜欢

转载自blog.51cto.com/5001660/2175539
今日推荐