在unix中转置列

在unix中转置列,unix,awk,transpose,Unix,Awk,Transpose,我有一个Unix文件,其中包含这样的数据 1379545632, 1051908588, 229102020, 1202084378, 1102083491, 1882950083, 152212030, 1764071734, 1371766009, (仅供参考,正如您在上面看到的,两个数字之间没有空行。这只是因为这里的编辑器。它只是一个列,所有数字一个接一个) 我想把它转换成一行打印 像这样: 1379545632,10519

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

1379545632,   
1051908588,    
229102020,    
1202084378,    
1102083491,    
1882950083,    
152212030,    
1764071734,    
1371766009,
(仅供参考,正如您在上面看到的,两个数字之间没有空行。这只是因为这里的编辑器。它只是一个列,所有数字一个接一个)

我想把它转换成一行打印

像这样:

 1379545632,1051908588,229102020,1202084378,1102083491,1882950083,152212030,1764071734,1371766009
同时删除最后一个逗号

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

tr'\n'tr '\n' ' ' < file.txt

要删除最后一个逗号,您可以尝试使用GNU awk来删除多字符字符:

$ printf 'x,\ny,\nz,\n' | awk -v RS='^$' '{gsub(/\n|(,\n$)/,"")} 1'
x,y,z
ORS:输出记录分隔符。
每个记录将用此分隔符分隔。

您只需使用编辑器
{}
按钮来正确格式化问题中的示例输入/输出。删除所有新行后,输出可能会重复,因此输出不再是POSIX文本文件,因此YMMV wrt将它传输到任何UNIX工具,包括sed,没问题,很好!例如,您可以使用
cut
从grep输出中提取一个特定的列,并将其导入其中
grep-i'create\sview'someddl.sql | cut-d'-f3 | tr'\n'|'
。这给了我一个所有视图的列表,我可以用它作为另一个grep的模式,看看谁在使用它们。
awk 'BEGIN { ORS="" } { print }' file