grep命令常用参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grep命令常用参数相关的知识,希望对你有一定的参考价值。

       grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。常用的有grep,egrep,fgrep。它们的区别如下:

              grep:在没有参数的情况下,只能输出符合RE(regular expression)字符

              egrep:它等同于grep -E,和grep最大的区别就是表现在转义字符上,比如grep把字符?+{}|()解释为普通字符,我们用grep时,只能使用转意字符,比如做次数匹配时,用\{1,3\},egrep则不需要,直接用{1,3}就行。

              fgrep:等同于与grep -f,但是不能使用正则表达式,所有的字符匹配功能均以消失。


接下来我们就来说说grep常用的一些参数:

      -C:打印出匹配的行的上下文前后各 n行。也就是说不但能匹配到指定的那一行,而且字符前后所指定的n行也能显示出来。如下:

      技术分享

    

     -i: 忽略模式 PATTERN 和输入文件中的大小写的分别。也就是不区分大小写字符。如下:

      技术分享


     -n:在输出的每行前面加上它所在的文件中它的行号,如下

         技术分享

        由上面的file文件可知,abc在第二行。


      -v: 改变匹配的意义,只选择不匹配的行。也就是说反向匹配,比如我们要匹配abc,匹配的就不是abc,是不是有点乱?

         技术分享


      -o : 显示匹配的行中与 PATTERN 相匹配的部分。如下:

          技术分享


        -c:为每一个输入文件打印一个匹配的行的总数。如下:

          技术分享


        -A n:输出匹配到的行,并显示其后的n行;如下:

         技术分享


       -B n:输出匹配的行,并输出其前面的n行,如下:

         技术分享


        -l:匹配多个文件时,只显示匹配的文件名,如下:

         技术分享


         -L:和上面的-l相对,显示不匹配的文件名,如下:

         技术分享


          -V:显示版本号:

           技术分享


          -q:安静。不向标准输出写任何东西。如果找到任何匹配的内容就立即以状态值 0 退出,即使检测到了错误:

           技术分享

            我们有一个file文件,里面的内容是 aaa,当我们不加-q选项时,直接给我门匹配到了并输出到屏幕上,加上-q选项之后,没有往终端输出任何消息,但我们echo它的状态码时,确实为0.


          -R,-r: 递归地读每一目录下的所有文件。


         ^$:代表空行:

          技术分享


          -b:在输出的每行前面同时打印出当前行在输入文件中的字节偏移量。如下:

           技术分享

              这里注意,选项-b -o一般总是配合使用。


           -e:该选型可以匹配多个模式,如下:

           技术分享

           上面我们想匹配name和yxs这两个字符串,可以使用-e选项。


          grep命令的选型很多很多,今后慢慢接触再慢慢了解吧,先说到这里。


         




         


以上是关于grep命令常用参数的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令——grep

shell 常用命令语法简介

Linux 下 grep 命令常用方法简介

xshell 常用命令

Linux常用命令——grep

Linux常用命令之grep