awk统计线上日志(直播打赏排行榜)
2017-09-25 本文已影响0人
联想桥南
例子A B C打赏金额的排行榜工作中有统计日志需求,比如ip出现的次数,某个id直播打赏金额的排行榜如图。
ip出现的次数cat live.log |awk -F '|' '{sum[$1]+=$2}END{for(i in sum)print i"\t"sum[i]}'
cat ip.log |awk -F '|' '{sum[$1]+=1}END{for(i in sum)print i"\t"sum[i]}'
awk 说明:
语法 awk '{pattern + action}' {filenames} -F 分隔符,所有操作可在'{}'解决
这里主要是数组的语法:因为awk中数组的下标可以是数字和字母,数组的下标通常被称为关键字(key)。值和关键字都存储在内部的一张针对key/value应用hash的表格里。所以awk中的数组用来从记录中收集信息,可以用于计算总和、统计单词以及跟踪模板被匹配的次数等等。
上边IP和ID都是被存储在了下标key中,value存次数。