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

正規表示式的 ^ 表示行首,. 表示任意一個字元,$ 表示行尾。^b.t 是「行首為 b,接著任意一個字元,再接著 t」,因此符合 bat 與 bit.txt。bt 在 b 與 t 之間沒有字元,boat 在 b 之後第二個字元是 a,所以都不符合。abet 的 bet 部分符合 b.t,但行首是 a,不符合 ^ 的條件。

  • A. 正確。從行首依序為 b、任意一個字元、t 的是 bat 與 bit.txt。
  • B. 這是沒有 ^ 時(grep 'b.t')的結果。有 ^ 時,只有行首為 b 的行才符合。
  • C. 這是把 . 當成 .*(0個以上的任意字串)時的結果。. 只比對剛好一個字元。
練習這個領域 前往領域頁面

Linux與命令列基礎的其他題目

  1. 選項中省略行首的空白。在上面的操作中,最後的管線輸出的行是下列何者?
  2. 想讓之後附加到伺服器日誌檔 /var/log/app.log 的行,在每次附加時持續顯示在畫面上。適當的指令是下列何者?
  3. 上面這個從逗號分隔的行取出欄位的指令,其輸出是下列何者?
  4. 上面這個取代字元的 sed 指令,其輸出是下列何者?
  5. 在上面的操作中,最後的 awk 輸出的內容是下列何者?