これはファイルを見つけるfind
問題なので、使用しましょう!
GNU find を使用すると、-regex
オプションを使用して、拡張子が または のいずれかであるディレクトリのツリー内のファイルを検索でき.h
ます.cpp
。
find -type f -regex ".*\.\(h\|cpp\)"
# ^^^^^^^^^^^^^^^^^^^^^^^
grep
次に、各結果に対して実行するだけです。
find -type f -regex ".*\.\(h\|cpp\)" -exec grep "your pattern" {} +
この find の分布がない場合は、オプションを連結するために使用する Amir Afghani の のようなアプローチを使用する必要があります (名前はで終わるかで終わります):-o
.h
.cpp
find -type f \( -name '*.h' -o -name '*.cpp' \) -exec grep "your pattern" {} +
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
本当に を使用したい場合はgrep
、 に示されている構文に従います--include
。
grep "your pattern" -r --include=*.{cpp,h}
# ^^^^^^^^^^^^^^^^^^^