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'