如何从带毫秒时间戳的日志中按秒统计SMS总数量
解决方案
你可以直接使用awk命令完成该统计需求,命令如下:
awk '/Multiple sms detected/{split($2, ts, "."); sum[ts[1]] += $NF} END{for(t in sum) print t, "sum=" sum[t]}' 你的日志文件名 | sort
命令说明:
- 先通过匹配关键词
Multiple sms detected过滤出符合要求的日志行,避免无关行干扰统计结果 split($2, ts, "."):将每行第二个字段(即带毫秒的时间戳)按.分割,取第一部分得到秒级时间sum[ts[1]] += $NF:将每行最后一个字段(也就是SMS计数值)累加到对应秒的统计总和中- 最后遍历统计结果并通过
sort按时间顺序排序输出
用你给出的样例日志执行后,输出结果为:
15:20:46 sum=18
内容的提问来源于stack exchange,提问作者geethik
相关产品推荐
相关产品推荐

