特定の文字列が含まれるファイルを検索する際に、find
コマンドの-exec
オプションでgrep
を使うことがある。
以下のようなコマンドで検索する場合、検索にヒットしたファイル名が表示されず困ることがある。
find -type f -exec grep 'hoge' {} \;
対処法
grep
の検索対象に/dev/null
も含めることでファイル名を表示することができる。
find -type f -exec grep 'hoge' {} /dev/null \;
解説
grep
は複数のファイルを検索対象に指定すると、検索結果にファイル名を表示する。データを返さない/dev/null
を検索対象に含めることで、検索結果を変えないまま検索結果にファイル名を表示できる。