簡體   English   中英

如何使用bash腳本按兩個字段分組?

[英]How to group by two fields using bash scripting?

這是一行日志的一個示例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM