Linuxとコマンドラインの基礎
$ cat log.txt
INFO start
ERROR disk full
warning: error retry
Error: error twice
INFO done
$ grep -ic error log.txt上の操作で、最後のコマンドが出力する値として、正しいものはどれか。
- A2
- B3
- C4
答えと解説を見る
正解:B. 3
grep の -i は大文字と小文字を区別しないこと、-c は一致した「行の数」を出力することを表します。error を大文字と小文字を区別せずに含む行は、ERROR disk full、warning: error retry、Error: error twice の3行なので、出力は3です。4行目には error が2回出てきますが、-c が数えるのは行の数なので1と数えます。ほかによく使うオプションには、一致しない行を出す -v、サブディレクトリの中までたどって探す -r、行番号を付ける -n があります。
- A. -i がないときの値です。-i があると ERROR と Error を含む行も数えます。
- B. 正しい。大文字と小文字を区別せずに error を含む行は3行です。
- C. 一致した回数(error が4回)を数えた値です。-c が数えるのは、一致した行の数です。