2016-11-23 36 views
1

我有一個Unix文件,它有這樣的數據。在unix轉置一列

1379545632, 
1051908588,  
229102020,  
1202084378,  
1102083491,  
1882950083,  
152212030,  
1764071734,  
1371766009, 

(僅供參考,有兩個數字之間不空行,你看上面。它只是因爲這裏的編輯器。它只是與所有數字一個低於其他列)

我要轉它並打印成一條線。

像這樣:

1379545632,1051908588,229102020,1202084378,1102083491,1882950083,152212030,1764071734,1371766009 

還要去掉最後一個逗號。

有人可以幫忙嗎?我需要一個shell/awk解決方案。

+1

你只需要使用編輯器的按鈕來正確格式化你的問題中的示例輸入/輸出。 –

+0

[Transpose using AWK or Perl]可能的重複(http://stackoverflow.com/questions/11659588/transpose-using-awk-or-perl) – tripleee

回答

1

隨着GNU AWK用於多炭RS:

$ printf 'x,\ny,\nz,\n' | awk -v RS='^$' '{gsub(/\n|(,\n$)/,"")} 1' 
x,y,z 
0
tr '\n' ' ' < file.txt 

要刪除最後一個逗號,您可以嘗試sed 's/,$//'

+0

刪除所有換行符後,輸出不再是POSIX文本文件因此,YMMV將使用任何您管理它的UNIX工具(包括sed)來處理它。 –

0
awk 'BEGIN { ORS="" } { print }' file 

ORS:輸出記錄分隔符。 每個記錄將以此分隔符分隔。