再帰的に検索し、指定されたファイルパターンを使用できますか?
同等の仕事をしようとしています。
find ./ -name "*.[c|h]" -exec grep -Hn PATTERN {} \;
明らかにgrepの-rフラグを使用できますが、ファイル名パターンを指定するときは次のようになります。
grep -Hn -r PATTERN *.c
再帰的ではなく、現在のディレクトリで* .cファイルのみを探します。
これが見つかりましたが、ファイルの命名については言及しません。再帰 grep と find/-type f -exec grep{}\;どちらがより効率的で速いですか?
答え1
少なくとも最新バージョンのGNUでは、引数にgrep
globパターンを使用できます。--include
grep -Hrn --include="*.[ch]" PATTERN .
.
[GNU grep > 2.11 では、使用時に明示的な起動ディレクトリを省略できます-r
。]