如何使用awk的将json格式nginx日志转成csv注意时间需要保证完整time23Mar2023062516 +0800http_hostlkluckeeinccomclinetip11210220118requestPATCH apicourses20tasks407event_v2doing HTTP11status200size848upstream_addr1270019000upst
可以使用以下命令将json格式nginx日志转换为csv格式:
awk -F'[:,}]' '{gsub(/"/,""); printf("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", $2"/"$3"/"$4" "$5":"$6":"$7, $10, $14, $18, $22, $26, $30, $34, $38, $42, $46, $50, $54)}' access.log > access.csv
解释:
-F'[:,}]'表示以冒号、逗号和右花括号作为分隔符gsub(/"/,"")表示去掉双引号$2"/"$3"/"$4" "$5":"$6":"$7表示将时间字段拼接成完整的时间格式$10, $14, $18, $22, $26, $30, $34, $38, $42, $46, $50, $54表示将其他字段输出到csv文件中access.log是原始日志文件名access.csv是转换后的csv文件名
注意:如果日志中有双引号或逗号,可能会影响转换结果,需要做一些额外的处理。
原文地址: https://www.cveoy.top/t/topic/5CF 著作权归作者所有。请勿转载和采集!