103.7基礎
tokens.txtから、aで始まり、bが1文字以上続き、cで終わる行を抽出する。
grepの拡張正規表現を使用する。
適切なコマンドはどれか。
× 不正解
EREの+は直前の要素が1回以上続くことを表す。*と異なり0回は許さない。
詳細解説
誤り
grep -E '^ab*c$' tokens.txt*は0回も許すため、acにも一致する。
bがないacも許す。
誤り
grep -E '^ab?c$' tokens.txt?は0回または1回なので、複数のbを許さない。
bを最大1文字に制限する。
誤り
grep -F '^ab+c$' tokens.txt-Fは+やアンカーを固定文字列として扱う。
正規表現として解釈しない。
正しい
grep -E '^ab+c$' tokens.txt+が直前のbを1回以上に限定する。
正解。bが1文字以上続く行に限定する。
実際に確かめる
一時的な検証環境で実行できる例です。
printf '%s\n' ac abc abbc abdc | grep -E '^ab+c$'期待される結果
abc
abbc理解のポイント
- +は1回以上
- *は0回以上
- -EでEREを有効化
確認時の注意
- 確認環境: GNU grep 3.x / LC_ALL=C
基礎のおさらい
量指定子
量指定子は直前の文字、ブラケット式、またはグループへ作用する。
ERE
grep -Eでは+、?、括弧、|を読みやすい形で使える。
問題IDKP-103-104
確認環境GNU grep 3.x / LC_ALL=C
最終技術確認2026-08-12
誤り・権利侵害を報告