すべてのディレクトリとサブディレクトリを再帰的に grep
するにはどうすればいいですか?
find . | xargs grep "texthere" *
grep -r "texthere" .
1番目のパラメータは検索する正規表現を表し,2番目のパラメータは検索対象となるディレクトリを表します。ここでは,.
はカレントディレクトリを意味します。
注意: これは GNU grep で動作します。Solaris のようないくつかのプラットフォームでは、レガシーな実装ではなく、GNU grep を特に使用する必要があります。 Solarisでは、これは ggrep
コマンドです。
必要なファイルの拡張子やパターンがわかっている場合は、--include
オプションを使うという方法もあります。
grep -r --include "*.txt" texthere .
また、--exclude
で除外するファイルを指定することもできます。
コードを頻繁に検索する場合、Ag (The Silver Searcher) は grep よりもはるかに高速で、コードの検索用にカスタマイズされています。たとえば、デフォルトでは再帰的に動作し、.gitignore
に記載されているファイルやディレクトリを自動的に無視するので、grep や find に面倒な exclude オプションを渡し続ける必要はありません。