[LPIC-1]GNU and Unix Commands 30

Which of the following commands replaces each occurrence of 'bob' in the file letter with 'Bob' and writes the result to the file newletter?

A.

sed '/bob/Bob' letter > newletter

B.

sed s/bob/Bob/ letter < newletter

C.

sed 's/bob/Bob' letter > newletter

D.

sed 's/bob/Bob/g' letter > newletter

E.

sed 's/bob, Bob/' letter > newletter

題解

「sed」指令可以處理檔案的文字內容,能夠進行許多不同的動作組合,動作是使用一串特定格式的字串來定義,因此在輸入動作參數的時候必須使用單引號或是雙引號來括起來。選項B可以先刪除掉,因為「s/bob/Bob/」動作沒有使用單引號或是雙引號括起來。

題目要求要將「bob」這個字串取代成「Bob」,因此要使用「sed」指令的「s」這個動作方式來達成字串取代的功能。選項A沒有使用到「s」,因此可以先刪除掉。另外題目還要求所有的「bob」字串都要被取代,因此最後還要加上「g」,才可以取代所有的「bob」字串,否則只會取代每行第一個出現的「bob」字串。

所以答案是選項D。

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章