在unix中转置一列

时间:2016-11-23 03:59:41

标签: unix awk transpose

我有一个Unix文件,其中包含这样的数据。

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

(仅供参考,如上所示,两个数字之间没有空行。这只是因为这里的编辑器。它只是一个列,其中所有数字都在另一个之下)

我想转置它并打印成一行。

像这样:

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

同时删除最后一个逗号。

有人可以帮忙吗?我需要一个shell / awk解决方案。

3 个答案:

答案 0 :(得分:1)

使用GNU awk进行多字符RS:

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

答案 1 :(得分:0)

tr '\n' ' ' < file.txt

要删除最后一个逗号,您可以尝试sed 's/,$//'

答案 2 :(得分:0)

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

ORS:输出记录分隔符。 每个记录将使用此分隔符分隔。