awk 命令未按预期工作
我有一个文件输入如下:
-4.0,vijay
-2.0,chan
-3.0,vijay
我的命令是:
awk -F, '{a[$2]=a[$2]+$1}{for (i in a) print i","a[i]}'
我期望
vijay,-7.0
chan,-2.0
实际输出是
vijay -4
vijay -4
chan -2
vijay -7
chan -2
I have a file input as below:
-4.0,vijay
-2.0,chan
-3.0,vijay
and my command is :
awk -F, '{a[$2]=a[$2]+$1}{for (i in a) print i","a[i]}'
i am expecting
vijay,-7.0
chan,-2.0
the actual output is
vijay -4
vijay -4
chan -2
vijay -7
chan -2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试:
Try:
看起来您需要保存打印,直到处理完所有行。
还可以尝试
printf
将逗号放在正确的位置。Looks like you need to save the print until all the lines have been processed.
Also try
printf
to get the comma in the right spot.您需要在 END 块处打印数组,否则 for 循环将开始打印迭代的每个记录。
You need to print the array at the END block otherwise your for loop will start to print for each record iterated.