一、背景:
公司的虎哥交给我一个任务让我写一个一次性脚本刷线上的数据。刷数据嘛,刷的过程中日志的记录避不可少,将一些有用的信息写入到日志,更是可以帮助我们定位问题。但是如何定义日志格式和如何分析日志就是我们要关注的了。
二、学习
1、日志格式:
#traceId:0 host:staging-web30.yn.com from:0 uri:cli clientIp: asyncTime:{asyncTime}这种形式
也就是每个字段之间使用空格进行分隔,好处是可以使用awk快速的分析日志,当然了,你也可以使用其他的分隔符,只不过空格和tab是awk的默认分隔符。
2、如何awk从入门到实用
a、总的使用语法:awk [模式] [动作] 文件名
举个栗子test.txt
员工 薪资 小时数
Beth 4.00 0
Dan 3.75 0
kathy 4.00 10
Mark 5.00 20
Mary 5.50 22
Susie 4.25 18
awk '$3==0 {print $1,$2,$3}' test.txt
其中$3==0就是模式,他表示第三列值为0的,{print $1,$2,$3}就是动作,他的作用跟print本身一样就是单纯的打印
在 awk 中仅仅只有两种数据类型: 数值 和 字符构成的字符串
在awk中NF表示每行的字段数量,NR表示行号