Linuxとコマンドラインの基礎

$ cat words.txt
bat
bt
boat
abet
bit.txt
$ grep '^b.t' words.txt

上の操作で、最後の grep が出力する行として、正しいものはどれか。

  1. Abat、bit.txt
  2. Bbat、abet、bit.txt
  3. 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文字に一致します。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. 選択肢では、行の先頭の空白を除いて示す。上の操作で、最後のパイプラインが出力する行として、正しいものはどれか。
  2. サーバのログファイル /var/log/app.log に後から追記される行を、追記されるたびに画面に表示し続けたい。適切なコマンドはどれか。
  3. カンマ区切りの行から列を取り出す上のコマンドの出力として、正しいものはどれか。
  4. 文字を置き換える上の sed のコマンドの出力として、正しいものはどれか。
  5. 上の操作で、最後の awk が出力する内容として、正しいものはどれか。