grep : カレントディレクトリ以下で、ある単語を含むファイルをリストする

grepの基本構文は以下のよう。

grep [OPTIONS] PATTERN [FILE...]

カレントディレクトリ以下で、Hoge,hoge を含むファイルをリストする。バイナリファイルは無視したい。後 Capfile というファイルも無視。

$ grep -Er --files-with-matches --binary-files=without-match --exclude=Capfile '(H|h)oge' .

-E, --extended-regexp

 パターン指定に extended-regexp を使う。デフォルトは basic-regexp。表現能力は同じだが、basic-regexpの場合、特殊文字を仕様する場合エスケープが必要(e.g. \( \) \| \+ とか)。面倒くさいので。

-r, -R, --recursive

 ディレクトリを再帰的に検索する。

-l, --files-with-matches

 一致した行を出力する代わりに、一つでもマッチがあるファイルのファイル名を出力する。

-l, == --binary-files=without-match

 バイナリファイルは検索をせず、マッチしなかったとみなす。

--exclude=GLOB

 GLOBに一致するファイルを検索対象からはずす。