grepでよく使うオプションの覚書(逆引き)

投稿者: | 2017年12月6日

はじめに

ど忘れ防止に、grepを使用して単語を検索する際によく使うオプションを逆引きでメモしておく。

単語検索方法の色々

単語が一致しない行を出力する場合、"-v"オプションを指定する。

grep -v word input.txt

大文字小文字を区別しない場合、"-i"オプションを指定する。

grep -i word input.txt

単語が見つかった行数も出力する場合、"-n"オプションを指定する。

grep -n word input.txt

単語が見つかった行の前後n行を出力する場合、"-行数"オプションを指定する。

grep -3 word input.txt  # 前後3行を出力する

ファイルパスだけ出力する場合、"-l"オプションを指定する。

grep -l word input.txt

サブディレクトリのファイルも対象とした場合の色々

サブディレクトリも対象とする場合、"-r"オプションを指定する。

grep -r word .

除外したいディレクトリがある場合は、"–exclude-dir"オプションにパターンを指定する。

grep -r word --exclude-dir=.git .

除外したいディレクトリが複数ある場合は、"–exclude-dir"オプションに波括弧で括ったカンマ区切りのパターンを指定する。

grep -r word --exclude-dir={.git,.vagrant} .

対象ファイルをパターンで絞り込む。

grep -r word --include=*.rb .

対象ファイルを複数のパターンで絞り込む。

grep -r word --include={*.rb,*.yml} .

除外ファイルをパターンで指定する。

grep -r word --exclude=*.bak

除外ファイルを複数のパターンで指定する。

grep -r word --exclude={*.bak,*.html} .

注意

パターンが一つしかない場合に波括弧で括ると処理されないので注意する。

grep -r word --exclude={*.bak} .  # エラーにならないけど除外とならない。
grep -r word --exclude=*.bak .    # {}を取った状態にする