可以使用以下命令将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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录