サイトアイコン Lonely Mobiler

Linux で find と grep を使って大量のファイルから特定の文字列を検索する

Linux で何かある文字列を検索する際、grep コマンドを良く用います。例えば以下のように使います。

$ grep -rin 'needle' *

以下の引数を良く利用します。

-G 検索に正規表現を使用する
-数字 指定した数字分、前後行を表示する
-n 行番号を表示する
-i 検索時に大文字と小文字の区別をしない
-r ファイルを再帰的に検索する
-v マッチしない行を表示

ところが grep のみではファイルが大量にある場合に "Argument list too long" とか "引数リストが長すぎます" とか言われる事があります。そんなときは xargs と組み合わせると良いです。

$ find ./ -type f -print | xargs grep 'needle'

各コマンドには以下のような意味があります。

これでファイルがいくらあろうが検索できます。

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