下面是一行日志的一个示例:

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/

10-13 07:37