Grep打印所有文件内容
这个问题在这里已经有了答案:
简单的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
要仅打印内容与正则表达式regex1
和regex2
匹配的文件的内容,请使用
find 'directory' -type f
-exec grep -q 'regex1' {} ; -and
-exec grep -q 'regex2' {} ; -print0 |
xargs -0 cat
换行仅仅是为了更好的可读性。 没有你可以把所有东西写成一行。
注意-q
为grep
。 该选项抑制了grep
的输出。 grep
的退出状态会告诉find
是否列出一个文件或没有。