问题:
我的文件如下,有几个数字和字符
69.175.54.106
= 17
)US
- 美国,CN
- 中国等),如果你看到下面的IP 69.175.54.106
被解决了283次而不是17次,那么我想要第一个字段和匹配的第二个字段的总和,第三个字段应该作为国家名称
17, 69.175.54.106,
283, 69.175.54.106, US
77, 58.77.59.10, CN
23, 58.77.59.10,
输出应如下所示:
300, 69.175.54.106, US
100, 58.77.59.10, CN
答案 0 :(得分:2)
这样的事可能适合你:
awk 'BEGIN {FS=", *"}
{sum[$2]+=$1 }
! country[$2] && $3 != "" {country[$2] = $3}
END { for ( k in sum ) { print sum[k] ", " k ", " country[k] } }' INPUTFILE
See it in action at Ideone.com。
逐行
BEGIN
块中设置了字段分隔符(以消除不需要的空格)