grepにファイルリストを渡す方法

grepにファイルリストを渡す方法

find閲覧したいファイルのリストを使用してインポートしていますgrep。そのリストをどのようにパイプしますかgrep

ベストアンサー1

さて、stdoutに書き込むすべてのコマンドに適用される一般的なケースはを使用することです。xargsこれにより、コマンドの最後に必要な数のコマンドライン引数を追加できます。

$ find … | xargs grep 'search'

バックティックを使用するか、grep行にコマンドを挿入すると、コマンドが$()実行され、出力が置き換えられます。

$ grep 'search' $(find …)

\'"ファイル名にスペースやその他の「奇妙な文字」(xargsの場合\[*?)が含まれていると、これらのコマンドは機能しません$(find …)


しかし、特定の状況では、find与えられた引数に基づいてプログラムを実行する機能が組み込まれています。

$ find … -exec grep 'search' {} \;

-execとの間のすべての内容は;実行されるコマンドです。{}見つかったファイル名に置き換えられますfind。これはgrep、各ファイルに対して別々のタスクを実行します。複数のファイル名をインポートしてすべて検索できるため、findに一致するすべてのファイル名を一度に渡すようにgrep変更できます。;+grep

$ find … -exec grep 'search' {} \+

おすすめ記事