サイトアイコン ktykwsk.com

再帰的にファイルの内容を検索する

大量のファイルから、目的とする文字列を含むファイルを検索する方法です。

メモ。

以下のコマンドで実現できます。

$ find <ディレクトリ> -type f | xargs grep <検索する文字列>

find コマンドのオプションは好きに変えてください。

-name でワイルドカードを用いるなんてのもいいですね。例えば拡張子phpのファイルだけを対象に検索したかったら、こんなコマンドになります。

$ find -name '*.php' | xrgs grep foo

find コマンドの結果はファイルのパスになります。それを引数としてxargsコマンドに渡し、grepコマンドを実行し、ファイル内検索をします。

実行結果。

$ find ./ -type f | xargs grep foobar
.//wp-includes/js/dist/vendor/lodash.js:     * // => 'foobar'
.//wp-content/plugins/gutenberg/vendor/lodash.2cfc2504.js:     * // => 'foobar'

カレントディレクトリ以下から、文字列 “foobar” を含むファイルと内容を出力しています。


モバイルバージョンを終了