Linux與命令列基礎

$ echo "aaa bab" | sed 's/a/x/'

上面這個取代字元的 sed 指令,其輸出是下列何者?

  1. Axaa bab
  2. Bxaa bxb
  3. Cxxx bxb
查看答案與解析

正確答案:A. xaa bab

sed 的 s/取代前/取代後/ 在每一行只取代最先找到的一處。這一行最先出現的 a 是開頭的字元,所以輸出為 xaa bab。若要取代一行中的所有符合處,要像 s/a/x/g 那樣在最後加上 g(global),此時輸出為 xxx bxb。取代是以行為單位進行的,所以檔案有多行時,即使沒有 g,每一行最先的一處也都會被取代。

  • A. 正確。因為沒有 g,只有行中第一個 a 變成 x。
  • B. 取代不是以單字為單位,而是以行為單位。沒有 g 時,只取代行中最先的一處。
  • C. 這是像 s/a/x/g 那樣加上 g 時的輸出。
練習這個領域 前往領域頁面

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

  1. 在上面的操作中,最後的 awk 輸出的內容是下列何者?
  2. 以 GNU 的 find 執行 find /data -name "*.log" -mtime +7 -size +100M 時,找到的檔案是下列何者?
  3. 停止沒有回應的行程時,一般建議先用「kill 行程ID」,仍未結束時才用「kill -9 行程ID」。理由是下列何者?
  4. 在終端機執行耗時的 ./sim.sh 途中,想在同一個終端機使用其他指令。按下 Ctrl+Z 後執行 bg 時的動作是下列何者?
  5. 在以 SSH 連線的伺服器上,用「./run.sh &」啟動耗時的處理後中斷連線,結果處理也停止了。要讓處理在中斷連線後繼續執行,最適當的啟動方式是下列何者?