grep'ing从前一个grep输出的文件

时间:2012-09-17 19:26:39

标签: linux grep pipe

我不知道这是否可能,或者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"

但是我正在寻找什么,我不想只搜索之前点击的行,但是这些行所在的整个文件。这甚至可能吗?有什么想法吗?

2 个答案:

答案 0 :(得分:9)

grep -rsIl "some_string" *.c | xargs grep -sI "second_string"

答案 1 :(得分:4)

使用-l选项列出符合xargs命令的文件,以便对这些文件应用grep

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