web-dev-qa-db-ja.com

前のgrepから返されたファイルに対して2番目のgrepを実行するにはどうすればよいですか?

探しているものを特定するために、grepを使用して一連のコードを検索することがよくあります。思ったより少し長いファイルのリストが表示されることがあります。この時点で、2番目のgrepを実行したいのですが、最初のgrep検索で返されたファイルのみを検索します。これを行う方法はありますか?基本的に、2つのgrep検索を相互参照し、両方の結果が含まれているファイルのみを取得したいと思います。

5
Chev
grep -lZ "first string" * | xargs -0 grep -l "second string"
  • 最初にgrepは、first stringを含むファイルを返します。

  • 2番目のgrepsecond stringに対して同じことを行いますが、最初のgrepの結果に対して行います。

  • Grepの-Z引数とxargsの-0引数は連携して、スペースを含むファイル名のサポートを有効にします。


編集-ありがとう Ajedi32

xargsを使用すると、コマンドの結果を別のコマンドの引数として使用できます。

xargsのWikipediaの記事 から、xargsは、標準入力からコマンドラインを構築および実行するために使用されるUnixおよびほとんどのUnixライクなオペレーティングシステム上のコマンドです。 。

9
jimm-cl