我要替換昏迷或空間文本換行,但不改變最後一個新行。更換新線用逗號殼
我知道這個問題的:How to replace newlines with tab characters? - 但它產生的結束,而不是新行的標籤。
到目前爲止,我已經配備:
awk 'NR>1{printf","} {printf $1} END{printf"\n"}'
是否有更簡單的方法來做到這一點?這不是一個任務,我只是好奇想要升級我的腳本。
我要替換昏迷或空間文本換行,但不改變最後一個新行。更換新線用逗號殼
我知道這個問題的:How to replace newlines with tab characters? - 但它產生的結束,而不是新行的標籤。
到目前爲止,我已經配備:
awk 'NR>1{printf","} {printf $1} END{printf"\n"}'
是否有更簡單的方法來做到這一點?這不是一個任務,我只是好奇想要升級我的腳本。
這可能會爲你工作:
paste -s -d, file
或
paste -s -d" " file
這應該做的工作:
echo ${$(tr '\n' ',' < file)%?}
或可能使用SED:
sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/,/g' file
可以使用sed命令刪除結束 「」
# sed -i 's/,$//g' endmodify.txt
# cat endmodify.txt
root
bin
daemon
adm
lp
sync
games
gopher
感謝。
sed'的相當良好的知識,你可以看到的結果是在最後一行昏迷,問題是如何避免它 – mpapis
喜mpapis:遺憾的更新:那麼我們就可以用,#SED -i的/,$ // G'endmodify.txt。 –
使用perl
是不是很paste
一樣簡單,但它推廣到更多的情況下:
perl -0pe 's/\n(?!$)/,/g' filename # comma
perl -0pe 's/\n(?!$)/ /g' filename # space
的(?!$)
是在先行斷言,這意味着「沒底」,所以最後一個換行符是左單獨。
我正在尋找的東西少神奇的,這些都需要'bash' /'tr'或'分別 – mpapis