Grep で特定の拡張子のファイルのみ対象・除外する
Grep で特定の拡張子のファイルのみ対象・除外する方法のメモ。
--include
: 特定の拡張子のみ対象にする
grep
コマンドで特定の拡張子のファイルのみ対象にするには、--include
オプションを使う。
$ grep -irl sampleMethod --include='*.java'
これで、拡張子が .java
のファイルだけを対象に、sampleMethod
という文字列を含むファイルを検索できる。
-i
… 検索文字列の大文字小文字を区別しなくなる。-r
… サブディレクトリも対象にする。-l
… ヒットしたファイル名のみ出力する。このオプションを外せばヒットした箇所も含めて出力する。
--include
は複数書くことで OR 条件を実現できる。
# Java ファイルと SQL ファイルを対象に検索する
$ grep -irl sample_table_name --include='*.java' --include='*.sql'
--exclude
: 特定の拡張子を除外する
--exclude
オプションは --include
オプションの逆で、特定の拡張子を検索対象から除外する。使い方は --include
のときと同じ。
# properties ファイルを除外する
$ grep -irl some-property --exclude='*.properties'
# 複数指定 : Java と Class ファイルを除外する
$ grep -irl something --exclude='*.class' --exclude='*.java'