大量のファイルから、目的とする文字列を含むファイルを検索する方法です。
メモ。
以下のコマンドで実現できます。
1 | $ find <ディレクトリ> -type f | xargs grep <検索する文字列> |
find コマンドのオプションは好きに変えてください。
-name でワイルドカードを用いるなんてのもいいですね。例えば拡張子phpのファイルだけを対象に検索したかったら、こんなコマンドになります。
1 | $ find -name '*.php' | xrgs grep foo |
find コマンドの結果はファイルのパスになります。それを引数としてxargsコマンドに渡し、grepコマンドを実行し、ファイル内検索をします。
実行結果。
1 2 3 | $ find ./ -type f | xargs grep foobar .//wp-includes/js/dist/vendor/lodash.js: * // => 'foobar' .//wp-content/plugins/gutenberg/vendor/lodash.2cfc2504.js: * // => 'foobar' |
カレントディレクトリ以下から、文字列 “foobar” を含むファイルと内容を出力しています。
宮崎県在住。
プログラムを書いて暮らしています。趣味はルアーフィッシング、ギター。