linux awk命令对apache日志做分析筛选时间段内的日志

用得少的东西,真得练习下,增加记忆和动手能力。

日志格式

192.168.0.3 - - [05/Jan/2019:09:34:31 +0800] "GET /api/data/getIndex.html HTTP/1.1" 200 238 "https://xxxxxxxxxxx/home.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36" "-" 

筛选命令

cat 20180105.log | awk -F ' '  '{split($4,array,"[");if(array[2]>="05/Jan/2019:09:30:09" && array[2]<="05/Jan/2019:09:50:09")print $0}'

命令详解
awk -F ' ' 以空格分隔行内内容
'{....}' 对分隔后的内容运行命令的代码段,格式化之后

'{
split($4,array,"[");
if(array[2]>="05/Jan/2019:09:30:09" && array[2]<="05/Jan/2019:09:50:09")print $0
}'

split函数分割的是$4, [05/Jan/2019:09:34:31 , 保存到array 。结果是array[1-n], 其中时间是array[2]

转载请注明出处:https://www.isres.com/linux/196.html

发表留言

人生在世,错别字在所难免,无需纠正。

    captcha