検索ワードを指定し、指定したファイルの中身を検索してヒットする行を出力する。ディレクトリを指定すると、そのディレクトリ内のファイルを検索する。
grep -option "検索パターン" ファイル名
よく使うオプション:
-c ヒットする行数を数える
-v "パターン" 指定するパターンを除外する
-i "パターン" 小文字、大文字どっちも引っかかる
-E "パターン1|パターン2|パターン3" 複数の検索パターンを指定(OR検索)
-n 検索ヒットの行数を表示する
-l ファイル名だけを表示する
(他に便利なオプション教えていただければありがたいです)
普段する使い方:
探したいパターンでgrep してパイプを使って要らないパターンを1個ずつ除外していく:
grep "欲しいパターン" file.txt | grep -vE "欲しくないパターン1|欲しくないパターン2"
パイプを使ってAND検索をする
grep "欲しいパターン1" file.txt | grep "欲しいパターン2"
特定の拡張子のファイルだけ検索したい場合はワイルドカードを使用:
// 指定ディレクトリ内のログだけ検索する
grep "検索パターン" path/*.log
// カレントディレクトリ以下を再帰的にログファイルだけを検索
grep "検索パターン" **/*.log