ファイル名パターンを指定する再帰 Grep

ファイル名パターンを指定する再帰 Grep

再帰的に検索し、指定されたファイルパターンを使用できますか?

同等の仕事をしようとしています。

find ./ -name "*.[c|h]" -exec grep -Hn PATTERN {} \;

明らかにgrepの-rフラグを使用できますが、ファイル名パターンを指定するときは次のようになります。

grep -Hn -r PATTERN *.c

再帰的ではなく、現在のディレクトリで* .cファイルのみを探します。

これが見つかりましたが、ファイルの命名については言及しません。再帰 grep と find/-type f -exec grep{}\;どちらがより効率的で速いですか?

ベストアンサー1

少なくとも最新バージョンのGNUでは、引数にgrepglobパターンを使用できます。--include

grep -Hrn --include="*.[ch]" PATTERN .

.[GNU grep > 2.11 では、使用時に明示的な起動ディレクトリを省略できます-r。]

おすすめ記事