一烈炭、背景:
公司的虎哥交給我一個任務讓我寫一個一次性腳本刷線上的數(shù)據(jù)官份。刷數(shù)據(jù)嘛,刷的過程中日志的記錄避不可少助琐,將一些有用的信息寫入到日志祭埂,更是可以幫助我們定位問題。但是如何定義日志格式和如何分析日志就是我們要關注的了兵钮。
二蛆橡、學習
1舌界、日志格式:
#traceId:0 host:staging-web30.yn.com from:0 uri:cli clientIp: asyncTime:{asyncTime}這種形式
也就是每個字段之間使用空格進行分隔,好處是可以使用awk快速的分析日志泰演,當然了呻拌,你也可以使用其他的分隔符,只不過空格和tab是awk的默認分隔符睦焕。
2藐握、如何awk從入門到實用
a、總的使用語法:awk [模式] [動作] 文件名
舉個栗子test.txt
員工?? 薪資 小時數(shù)
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 中僅僅只有兩種數(shù)據(jù)類型: 數(shù)值 和 字符構成的字符串
在awk中NF表示每行的字段數(shù)量缔御,NR表示行號