コマンドライン

grepとfindを使って、サーバ上で大量のファイルから目当てのファイルを見つける方法

複数ファイルを対象にしたファイル内容の検索方法を紹介します。

比較的簡単な方法は、ファイルを探し出すことができるfindコマンドと、ファイル内から指定した文字列を検索するgrepコマンドを組み合わせます。

find . -name "*" | xargs grep 検索文字

例えば、現在のディレクトリ以下にあるPHPファイルを対象に、「Auth」が記述されたファイルと行を出力するには以下のようになります。

find . -name "*.php" | xargs grep Auth

findでマッチした.phpファイル一式をxargsコマンドが受け取り、それをgrepの引数に渡し、Auth という文字列を検索しています。
それそれのコマンドに多くのオプションがあるので、調べればいろいろと便利で柔軟な検索ができると思います。

関連記事