我不知道这是否可能,或者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"
但是不我正在寻找什么,我不想只搜索之前点击的行,但是这些行所在的整个文件。这甚至可能吗?有什么想法吗?
答案 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"