0

これが可能かどうか、grepが間違ったツールかどうか、または何をするかはわかりませんが、私がやりたいのはこれです。

grep -rsI "some_string" *.c 

次に、結果が見つかったファイルのリストを2番目のgrepにパイプします。

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

次の方法で正確な行を2番目の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 に答える