将列转置为行,最后不使用分隔符

时间:2019-10-14 19:00:14

标签: awk

我将列换行:

msbuild -r -p:Configuration=Release the.sln

文件:

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

结果是:

45
78
45

如何删除行尾的逗号? 我尝试过:

45,78,45,

但它不适用于分隔符。

4 个答案:

答案 0 :(得分:6)

另一个awk,假定号码列表没有空换行符

$ awk -v RS= -v OFS=, '{$1=$1}1' file

答案 1 :(得分:4)

您应该使用其他方法,例如:

awk 'NR>1{printf "%s,",p} {p=$0} END{print p}' file

每当读取新行时,它就会打印<previous line>,,并在输入的末尾打印最后一行。

答案 2 :(得分:4)

对于这种简单的情况,paste命令很简单:

$ paste -s -d ',' file
45,78,45

答案 3 :(得分:4)

$ awk '{printf "%s%s", ors, $0; ors=","} END{print ""}' file
45,78,45