103.7基礎
events.txtにはerrorが2回ある行と、1回ある行がそれぞれ1行ある。
errorの出現総数ではなく、errorを含む行数だけを表示する。
適切なコマンドはどれか。
× 不正解
grep -cが数えるのは一致箇所ではなく、一致を1つ以上含む行の数である。
詳細解説
誤り
grep -o 'error' events.txt | wc -l一致箇所を1行ずつ出すため、出現総数を数える。
一致の出現総数を数える。
正しい
grep -c 'error' events.txt-cは一致を含む行の数を表示する。
正解。1行に複数一致しても1行として数える。
誤り
wc -l events.txterrorの有無に関係なくファイル全行を数える。
検索せず全行を数える。
誤り
grep -n 'error' events.txt行番号付きで一致行を表示するが、件数だけにはならない。
件数ではなく一致行を表示する。
実際に確かめる
一時的な検証環境で実行できる例です。
printf '%s\n' 'error error' ok error | grep -c 'error'期待される結果
2理解のポイント
- -cは一致行数
- 同じ行の複数一致も1行
- -oとのパイプは出現数
確認時の注意
- 確認環境: GNU grep 3.x
基礎のおさらい
行単位の選択
grepは基本的に行を選択するため、-cも選ばれた行数を返す。
出現数
出現箇所を数える場合はGNU grep -oの出力を数える方法がある。
問題IDKP-103-111
確認環境GNU grep 3.x
最終技術確認2026-08-12
誤り・権利侵害を報告