Linux awk命令
一. 查询时间超过2000毫秒的请求
✅log: 20231119-1.log
2023:11:19 09:07:10 SPLEND=2000 请求开始 110 END
2023:11:19 09:07:11 SPLEND=1000 请求开始 120 END
2023:11:19 09:07:12 SPLEND=3000 请求开始 119 END
2023:11:19 09:07:13 SPLEND=4000 请求开始 156 END
2023:11:19 09:07:14 SPLEND=4000 请求开始 157 END
⏹查询时间超过2000毫秒的请求
grep -a SPLEND ./20231119-1.log | awk 'BEGIN {FS="="} {if($NF>2000) print $0}'
👇结果
2023:11:19 09:07:10 SPLEND=2000 请求开始 110 END
2023:11:19 09:07:12 SPLEND=3000 请求开始 119 END
2023:11:19 09:07:13 SPLEND=4000 请求开始 156 END
2023:11:19 09:07:14 SPLEND=4000 请求开始 157 END
二. 查询指定列组合出现的次数
✅log: 20231119-2.log
你好 世界 110120 AAA
世界 你好 112123 BBB
你好 世界 343434 CCC
世界 你好 343434 DDD
世界 你好 565656 WWW
hello world 23232 EEE
hello world 23423 FFF
world hello 23232 GGG
world hello 34344 HHH
⏹查询第2列和第1列组合之后,出现的次数
cat ./20231119-2.log | awk '{cnt[$2" "$1]+=1;} END {for (i in cnt) print i,cnt[i]"回"}'
👇结果
world hello 2回
hello world 2回
你好 世界 3回
世界 你好 2回