美文网首页我爱编程程序员
Linux中的管道命令(五)

Linux中的管道命令(五)

作者: 学习编程王同学 | 来源:发表于2018-07-11 12:11 被阅读4次

    grep程序在文本中搜索特定模式的行。

    $ cat /etc/passwd | grep tom
    tom:x:1001:1001:,,,:/home/tom:/bin/bash
    

    上面的例子从/etc/passwd中抽取有gaga的行。

    使用-i命令选项忽略字母大小写差异,使用-v选项显示不包含特定模式的行。

    -c选项显示匹配行的数量:

    $ cat /etc/passwd | grep -c bash
    3
    $ cat /etc/passwd | grep -c tom
    1
    

    -n选项对行进行标号,可以用于确定匹配行的位置:

    $ cat /etc/passwd | grep -n tom
    31:tom:x:1001:1001:,,,:/home/tom:/bin/bash
    

    从上面的例子看出,只要搜索模式gaga在行中,就会被匹配到;如果想要匹配单词gaga,则需使用-w选项;以行为单位进行匹配,则需要使用-x选项。下面的例子搜索包含bash单词的行:

    $ cat /etc/passwd | grep -w bash
    tom:x:1001:1001:,,,:/home/tom:/bin/bash
    

    如果在多个文件中搜索,使用-l列出包含匹配行的文件的文件名,-L则列出包含匹配行的文件的文件名。

    使用-r在目录中进行递归搜索:

    $ grep -lr tom ./
    ./.bash_history
    

    这条命令列出在当前目录下递归搜索的包含gaga的文件的文件名。

    相关文章

      网友评论

        本文标题:Linux中的管道命令(五)

        本文链接:https://www.haomeiwen.com/subject/yqhhpftx.html