次: Directories, 前: Permissions, 上: Finding Files
ファイルの内容を基に検索するために,grep
プログラムを使用すること
が可能です.例えば,現在のディレクトリで,文字列`thing'を含むCのソー
スファイルを見つけるために,以下のようにすることが可能です.
grep -l thing *.[ch]
サブディレクトリのファイルの文字列を検索したい時も,以下のように
find
とxargs
を用いて,grep
を組み合わせることが可能
です.
find . -name '*.[ch]' | xargs grep -l thing
grep
は`-l'オプションで,文字列を含む行ではなくそれを含むファ
イル名のみ出力します.文字列の引数(`thing')は,実際には正規表現で,
そのためメタ文字を含みます.この方法で,find
の出力がない場合は
xargs
にgrep
を実行させないように,`-r'オプションを使
用したり,名前にスペースを含んでいて間違って解釈することを防ぐために,
find
のアクション`-print0'とxargs
のオプション
`-0'を使用することで改善可能です.
find . -name '*.[ch]' -print0 | xargs -r -0 grep -l thing
パターンにマッチする内容があるファイルを見つけるためのより完全な扱いは,
grep
のマニュアルページを参照して下さい.