基本構文 #
grepコマンドの基本構文は「オプション」「検索パターン」「ファイル名」のように指定します。
grep [オプション] '検索パターン' ファイル名
例えば「maillog」にて「error」を検索したい場合のコマンドは以下となります。
grep "error" /var/log/maillog
また、grepコマンドはファイルを直接指定するだけでなく、標準出力をパイプで受け取り検索に利用することも可能です。
cat /var/log/maillog | grep "error"
複数条件の検索 #
OR検索 #
複数のキーワードにていずれかの「検索パターン」を含む行を抽出するには「-E」オプションを使用し拡張正規表現を有効にします。
次に正規表現を使用し「パイプ(|)」で複数の条件を繋ぎます。
grep -E "検索パターン1|検索パターン2" ファイル名
例えば「maillog」にて「error」や「fail」を含む行を検索したい場合は下記のコマンドとなります。
grep -E "error|fail" /var/log/maillog
また、同様の複数キーワードによる検索は、「-e」オプションを用いても実現可能です。
※指定するオプションは 小文字の「-e」 である点にご注意ください。
grep -e "検索パターン1" -e "検索パターン2" ファイル名
AND検索 #
複数のキーワードすべてを含む行を検索する場合、grepをパイプで連結してフィルタリングを重ねるのが一般的となっております。
これにより「検索パターン1」と「検索パターン2」の両方にマッチする行を表示する事ができます。
grep '検索パターン1' ファイル名 | grep '検索パターン2'
例えば、maillogファイル内から「error」というキーワードと、特定の日付の両方を含む行を検索したい場合は、以下のように grep コマンドを組み合わせて使用します。
grep 'error' /var/log/maillog | grep 'Apr 23'
標準出力より検索に利用する場合は以下となります。
cat /var/log/maillog | grep 'error' | grep 'Apr 23'