我正在使用 grep 获取我想用于另一个 grep 搜索的文件列表(而不是简单地通过管道传输)。
例如我得到的输出:
file1.h:XXX: linecontent
file2.h:XXX: linecontent
file3.h:XXX: linecontent
file4.h:XXX: linecontent
我只想 grep file1.h, file2.h ...
最佳答案
我假设您想搜索包含两种不同模式的文件。如果是这样,这就是您想要的:
grep 'your pattern 2' `grep -l 'your pattern 1' *`
反引号中的内容将首先执行,并将输出代入命令行。使用 -l 标志会将 grep 命令的输出限制为仅文件名。
如果有大量文件与 your pattern 1
匹配,这可能会失败。解决方案是使用 xargs
grep -l 'your pattern 1' * | xargs grep 'your argument 2'
关于linux - 我如何在以前的 grep 所针对的文件列表中进行 grep?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416955/