Linuxとコマンドラインの基礎
$ cat words.txt
bat
bt
boat
abet
bit.txt
$ grep '^b.t' words.txt上の操作で、最後の grep が出力する行として、正しいものはどれか。
- Abat、bit.txt
- Bbat、abet、bit.txt
- Cbat、bt、boat、bit.txt
答えと解説を見る
正解:A. bat、bit.txt
正規表現の ^ は行の先頭、. は任意の1文字、$ は行の末尾を表します。^b.t は「行の先頭が b、続いて任意の1文字、続いて t」なので、bat と bit.txt に一致します。bt は b と t の間に文字がなく、boat は b の2文字後が a なので一致しません。abet は bet の部分が b.t に合いますが、行の先頭が a なので ^ の条件に合いません。
- A. 正しい。行の先頭から b、任意の1文字、t と並ぶのは bat と bit.txt です。
- B. ^ がないとき(grep 'b.t')の結果です。^ があると、行の先頭が b の行だけが一致します。
- C. . を .*(0文字以上の任意の文字列)のように読んだときの結果です。. はちょうど1文字に一致します。