探しているものを特定するために、grepを使用して一連のコードを検索することがよくあります。思ったより少し長いファイルのリストが表示されることがあります。この時点で、2番目のgrepを実行したいのですが、最初のgrep検索で返されたファイルのみを検索します。これを行う方法はありますか?基本的に、2つのgrep検索を相互参照し、両方の結果が含まれているファイルのみを取得したいと思います。
grep -lZ "first string" * | xargs -0 grep -l "second string"
最初にgrep
は、first string
を含むファイルを返します。
2番目のgrep
はsecond string
に対して同じことを行いますが、最初のgrep
の結果に対して行います。
Grepの-Z
引数とxargsの-0
引数は連携して、スペースを含むファイル名のサポートを有効にします。
編集-ありがとう Ajedi32 :
xargs
を使用すると、コマンドの結果を別のコマンドの引数として使用できます。
xargs
のWikipediaの記事 から、xargsは、標準入力からコマンドラインを構築および実行するために使用されるUnixおよびほとんどのUnixライクなオペレーティングシステム上のコマンドです。 。