awk应用日志分析
Posted 波子汽水yeah
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk应用日志分析相关的知识,希望对你有一定的参考价值。
需求从日志里面统计一个接口请求耗时
日志里面打印的内容是
log.info("请求xx接口code=,耗时=)
日志分析,直接打印平均数
日志分析
一开始用的方法:
grep 请求xx接口code=xxx,耗时 application-2020-07-22-14.log >/tmp/couponcount.txt
获取关键日志 包含所需要的字段
grep 耗时= couponcount.txt >> /tmp/cc.txt
提取目标列
awk -F ',' 'print $2' cc.txt >> time.txt
进一步提取数值
awk -F '=' 'print $2' time.txt >> hs.txt
统计平均值
cat hs.txt |awk 'sum+=$1 END print"avg= ",sum/NR’
升级版本:
cat awk -F',' 'print $2' 17.txt |awk -F'=' 'print $2’ END print"avg= ",sum/NR’
可用版本
grep 耗时= couponcount.txt | awk -F'=' 'print $3'|awk -F',' 'print $1' | awk 'sum+=$1 END print"avg= ",sum/NR’
最终版
grep请求xx接口code=xxx,耗时 application-2020-07-22-14.log | awk -F'=' 'print $3'|awk -F',' 'print $1' | awk 'sum+=$1 END print"avg= ",sum/NR’
awk -F‘=’ ‘print $1’
-F指定分隔符 这里‘=’ 表示使用=等号
‘print $1’ 打印第一列 注意awk第一列就是$1 并不是$0,这点要特别注意
举个栗子
有如下文本 test.txt
小明,老王,安吉拉北鼻
awk -F‘,’ ‘print $1’ 打印的就是 小明
同理
awk -F‘,’ ‘print $3’ 打印的就是 安吉拉北鼻
以上是关于awk应用日志分析的主要内容,如果未能解决你的问题,请参考以下文章