Grep打印所有文件内容

这个问题在这里已经有了答案:

  • Colorized grep - 用突出显示的匹配查看整个文件15个答案

  • 简单的grep + cat组合:

    grep 'pattern' file && cat file
    

    使用grep-l选项列出具有匹配内容的文件的路径,然后使用cat打印这些文件的内容。

    grep -lR 'regex' 'directory' | xargs -d 'n' cat 
    

    上面的命令无法处理换行符中的文件名。 为了克服带有换行符问题的文件名,并允许更复杂的检查,可以使用find命令。

    以下命令打印directory中所有常规文件的内容。

    find 'directory' -type f -print0 | xargs -0 cat
    

    要仅打印内容与正则表达式regex1regex2匹配的文件的内容,请使用

    find 'directory' -type f 
         -exec grep -q 'regex1' {} ; -and 
         -exec grep -q 'regex2' {} ;  -print0 |
    xargs -0 cat
    

    换行仅仅是为了更好的可读性。 没有你可以把所有东西写成一行。
    注意-qgrep 。 该选项抑制了grep的输出。 grep的退出状态会告诉find是否列出一个文件或没有。

    链接地址: http://www.djcxy.com/p/19649.html

    上一篇: Grep to Print all file content

    下一篇: Grep characters before and after match?