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」參數會縮減重複連續出現的字元為一個。因此這個是正確答案。