2010-05-27 134 views
2

我正在使用以下命令將文件拆分爲單詞 - 有沒有更快的方法?由換行符和Bourne shell中的空格拆分字符串

while read -r line 
do 
    for word in $line 
    do 
     words="${words}\n${word}" 
    done 
done 
+0

@Dennis威廉姆森:有沒有你刪除的 '慶典' 標籤的原因是什麼?我意識到bash與sh不同,但鑑於前者中有2500個帶標籤的問題,而後者中有5個帶標籤的問題,所以在我看來,使用這兩個標籤似乎更有用。到目前爲止所有的答案都適用於兩種炮彈。 – 2010-05-28 08:34:22

+0

「外殼」標籤可以直接應用並實現可視性。你在標題中詢問了Bourne shell。我可以根據你的標籤給出一個Bash特定的答案,你不能在一些非Bash shell中使用它。請注意,如果您使用「bourne」而不是「bourne-shell」,那麼會有更多更加棘手的27個問題。其中一些可能不重疊,但大部分或全部應該。如果他們這樣做了,可以消除一個標籤,減少站點標籤混亂並提高兩者的可見度(即使只是略微)。 – 2010-05-28 10:13:37

回答

9

如何使用tr

tr -s '[:space:]' '\n' < myfile.txt 

-s將多個空白字符合併成一個。

+1

+1這個解決方案。一個小細節:使用\\ n,「\ n」或'\ n'代替沒有引號的\ n – 2010-05-27 17:39:17

+0

+1,絕對是最快的解決方案 – l0b0 2010-05-28 13:05:17

2
xargs -n 1 echo <myfile.txt 
+0

謝謝,但這個解決方案比其他解決方案慢。 – l0b0 2010-05-28 11:34:20

2
sed 's/[[:space:]]/\n/g' file.txt 
相關問題