0

我不知道这是否可能,或者 grep 是否是错误的工具,或者是什么,但我想要做的是:

grep -rsI "some_string" *.c 

然后将找到结果的文件列表通过管道传输到第二个 grep 中:

grep -rsI "second_string" <list of files from first grep>

我知道我可以通过以下方式将确切的行传递给第二个 grep:

grep -rsI "some_string" *.c | grep "second_string"

但这不是我要找的,我不想只搜索以前点击的行,而是搜索这些行所在的整个文件。这可能吗?有任何想法吗?

4

2 回答 2

9
grep -rsIl "some_string" *.c | xargs grep -sI "second_string"
于 2012-09-17T19:28:18.040 回答
4

使用-l选项列出匹配的文件,然后xargs命令应用于grep这些文件。

grep -l -rsI "some_string" *.c | xargs grep "second_string"
于 2012-09-17T19:28:35.013 回答