我正在阅读https://stackoverflow.com/a/34685332/156458
中的一个例子$ seq 5 | awk '{printf "%s%s",sep,$0; sep=",\n"} END{print ""}'
1,
2,
3,
4,
5
我认为END{print ""}
是多余的,所以
$ seq 5 | awk '{printf "%s%s",sep,$0; sep=",\n"} '
1,
2,
3,
4,
为什么删除END{print ""}
不打印最后一行?
答案 0 :(得分:2)
因为您正在删除有效打印新行的{print ""}
。
5
应该出现在你的提示之前,但你的shell可能不允许这样做,只是将它们全部放在一起。
$ seq 5 | awk '{printf "%s%s",sep,$0; sep=",\n"} END{print ""}'
打印:
1,
2,
3,
4,
5
$>
和$ seq 5 | awk '{printf "%s%s",sep,$0; sep=",\n"}
打印:
1,
2,
3,
4,
5$>
答案 1 :(得分:2)
如何简化:
seq 5 | awk -v RS="\0" -v OFS=",\n" '{$1=$1}7'