Corredor

ウェブ、プログラミングの勉強メモ。

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'