次: 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のマニュアルページを参照して下さい.