在unix转置一列
问题描述:
我有一个Unix文件,它有这样的数据。在unix转置一列
1379545632,
1051908588,
229102020,
1202084378,
1102083491,
1882950083,
152212030,
1764071734,
1371766009,
(仅供参考,有两个数字之间不空行,你看上面。它只是因为这里的编辑器。它只是与所有数字一个低于其他列)
我要转它并打印成一条线。
像这样:
1379545632,1051908588,229102020,1202084378,1102083491,1882950083,152212030,1764071734,1371766009
还要去掉最后一个逗号。
有人可以帮忙吗?我需要一个shell/awk解决方案。
答
随着GNU AWK用于多炭RS:
$ printf 'x,\ny,\nz,\n' | awk -v RS='^$' '{gsub(/\n|(,\n$)/,"")} 1'
x,y,z
答
tr '\n' ' ' < file.txt
要删除最后一个逗号,您可以尝试sed 's/,$//'
。
+0
删除所有换行符后,输出不再是POSIX文本文件因此,YMMV将使用任何您管理它的UNIX工具(包括sed)来处理它。 –
答
awk 'BEGIN { ORS="" } { print }' file
ORS:输出记录分隔符。 每个记录将以此分隔符分隔。
你只需要使用编辑器的按钮来正确格式化你的问题中的示例输入/输出。 –
[Transpose using AWK or Perl]可能的重复(http://*.com/questions/11659588/transpose-using-awk-or-perl) – tripleee