在 unix 中转置一列

transpose a column in unix

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

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

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

我想转置它并作为单行打印。

像这样:

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

同时删除最后一个逗号。

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

tr '\n' ' ' < file.txt

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

使用 GNU awk 进行多字符 RS:

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

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