utte38 / 78

grep -E で複数の語のどれかに一致する行を探す

ホームディレクトリの app.log から、レベルが WARN または ERROR の行だけを抜き出し、ホームディレクトリの problems.txt に保存してください。INFO と DEBUG の行は含めないでください。

解説
grep -E 'WARN|ERROR' app.log > problems.txt

-E(拡張正規表現、egrep と同じ)を付けると、| を「または」として使えます。-E なしの基本正規表現では | はただの文字なので、WARN|ERROR という文字列そのものを探してしまい、何も一致しません(GNU の grep では \| と書けば「または」になります)。

拡張正規表現では、+(1回以上)、?(0回か1回)、()(グループ化)、{n}(n回)も \ なしでそのまま使えます。パターンはシェルに解釈されないよう、シングルクォートで囲みます。行頭は ^、行末は $ で表します。

使うコマンド

関連する問題