Linux で何かある文字列を検索する際、grep コマンドを良く用います。例えば以下のように使います。
$ grep -rin 'needle' *
以下の引数を良く利用します。
-G | 検索に正規表現を使用する |
---|---|
-数字 | 指定した数字分、前後行を表示する |
-n | 行番号を表示する |
-i | 検索時に大文字と小文字の区別をしない |
-r | ファイルを再帰的に検索する |
-v | マッチしない行を表示 |
ところが grep のみではファイルが大量にある場合に "Argument list too long" とか "引数リストが長すぎます" とか言われる事があります。そんなときは xargs と組み合わせると良いです。
$ find ./ -type f -print | xargs grep 'needle'
各コマンドには以下のような意味があります。
- find ./ -type f カレントディレクトリ以下のファイルを全て標準出力に出す。
- | 標準出力に出力したものを次のコマンドへ渡す。
- xargs 渡された標準出力を次に書くコマンドの引数として利用する。
- grep 'needle' xargs で渡された引数のファイルから needle を検索する。
これでファイルがいくらあろうが検索できます。
Sponsored Link
コメント