Which of the following commands will reduce all consecutive spaces down to a single space?



A.

tr '\s' ' ' < a.txt > b.txt

B.

tr -c ' ' < a.txt > b.txt

C.

tr -d ' ' < a.txt > b.txt

D.

tr -r ' ' '\n' < a.txt > b.txt

E.

tr -s ' ' < a.txt > b.txt

題解

「tr」指令可以取代字元。

選項A,會將「\」和「s」字元取代成空格字元。

選項B,「tr」指令的「-c」參數無法這樣使用。「-c」參數得到做相反的結果,將不符合第一個參數輸入的字元取代成別的字元,例如:

tr -c ' ' 'a' < a.txt > b.txt

會將不是空格的字元都取代成「a」。

選項C,「tr」指令的「-d」參數會刪除符合第一個參數輸入的字元,也就是會將所有空格字元刪除。

選項D,「tr」指令沒有「-r」參數。

選項E,「tr」指令的「-s」參數會縮減重複連續出現的字元為一個。因此這個是正確答案。