Next: , Previous: Permissions, Up: Finding Files


2.8 内容

ファイルの内容を基に検索するために,grepプログラムを使用すること が可能です.例えば,現在のディレクトリで,文字列‘thing’を含むCのソー スファイルを見つけるために,以下のようにすることが可能です.

     grep -l thing *.[ch]

サブディレクトリのファイルの文字列を検索したい時も,以下のように findxargsを用いて,grepを組み合わせることが可能 です.

     find . -name '*.[ch]' | xargs grep -l thing

grepは‘-l’オプションで,文字列を含む行ではなくそれを含むファ イル名のみ出力します.文字列の引数(‘thing’)は,実際には正規表現で, そのためメタ文字を含みます.この方法で,findの出力がない場合は xargsgrepを実行させないように,‘-r’オプションを使 用したり,名前にスペースを含んでいて間違って解釈することを防ぐために, findのアクション‘-print0’とxargsのオプション ‘-0’を使用することで改善可能です.

     find . -name '*.[ch]' -print0 | xargs -r -0 grep -l thing

パターンにマッチする内容があるファイルを見つけるためのより完全な扱いは, grepのマニュアルページを参照して下さい.