2016-11-23 42 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:输出记录分隔符。 每个记录将以此分隔符分隔。