其他分享
首页 > 其他分享> > awk 使用内置变量和自定义变量

awk 使用内置变量和自定义变量

作者:互联网

内置变量

如日志文件长下面这样,我们想找出调用某个接口最后的时间

[application-xxx-core-dispatcher-18] 2022-07-11 21:05:34,027 [INFO] from callback.CallbackActor-line:126 - send http://172.18.34.130:9046/exception/location/abnormal

可以这样:

grep $1 play.log|tail -1|awk '{begin_time=$2" "$3;print begin_time}'

说明:

  1. grep $1 play.log|tail -1 : 查找$1变量最后出现的一行
  2. awk '{begin_time=$2" "$3;print begin_time}': 打印最后一行的年月日和时间

自定义变量

还是上面的日志,想要过滤出某个时间段的日志,可以把开始和截止时间当成参数传进去

begin_time=`grep $1 play.log|tail -1|awk '{begin_time=$2" "$3;print begin_time}'`
end_time=$(date "+%Y-%m-%d %H:%M:%S")
cat play.log|awk -v begin="${begin_time}" -v end="${end_time}" '{cur=$2" "$3;if(cur ~ /^2022/ && cur > begin && cur < end){print $0}}'

标签:begin,end,变量,自定义,play,awk,time,print
来源: https://www.cnblogs.com/stxz/p/16471041.html