下面是一行日志的一个示例:
2016-04-24 23:59:45 -1 6bd3fbb8-65ac-4d16-bf32-48659a76c499 2 +15173583107 14 +161760555935 14 de.xxxx-O2 layxxxd 0 1
我知道如何按一个文件分组,所以这是解决方案:
awk '{arr[$11]+=$12} END {for (i in arr) {print i,arr[i]}}' exmaple.log
这就是结果:
xx 144
layxxxd 49.267
我的问题是,如何用两个字段而不是一个字段进行分组,第一个字段应该是
$11
,第二个字段应该是$10
?因此,结果应改为:layxxxd unknown 100
layxxxd de.xxxx-O2 44
最佳答案
如何用两个字段而不是一个字段进行分组,第一个字段应该$11
,第二个字段应该$10
?
可以使用$11 FS $10
作为关联数组的键:
awk '{arr[$11 FS $10] += $12} END {for (i in arr) {print i,arr[i]}}' exmaple.log
关于linux - 如何使用bash脚本按两个字段分组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36885022/