awk针对日志文件分组统计


cat /tmp/log | awk -F”|” ‘{split($1,arr,” “);day=arr[1];flag=$2;result=$6; res[day”t”flag”t”result]++}END{for(i in res)print i”t”res[i]}’ | sort

日志文件各列以|分隔. 第一列为日期时间型Y-m-d H:i:s 所以要用空格再分一下才能获取到日期. 用day,flag,result继续需要分组的列. 然后, 拼成key存储到res数组中. 这样就达到了分组统计的目的了. END块中遍历res数组, 然后print. 结果用sort, 可以按日期先后顺序展示. 方便查看.


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注