假设nginx日志格式为:

$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"

则可以使用以下awk命令提取各个部分并输出到csv文件中:

awk 'BEGIN{FS="[ \[\"]+"; OFS=","} {print $1,$4,$5,$7,$8,$9,$10,$11}' nginx.log > nginx.csv

解释:

  1. BEGIN{FS="[ \[\"]+"; OFS=","}:设置输入字段分隔符为一个或多个空格、左中括号或双引号,输出字段分隔符为逗号。
  2. {print $1,$4,$5,$7,$8,$9,$10,$11}:输出第1、4、5、7-11个字段,即remote_addr、time_local、request、status、body_bytes_sent、http_referer和http_user_agent。
  3. nginx.log > nginx.csv:将输出重定向到csv文件中。

注意:以上命令仅适用于上述特定的nginx日志格式,如果日志格式不同,需要相应地修改awk命令。

awk提取nginx日志中的各个部分并输出到一个csv文件中

原文地址: https://www.cveoy.top/t/topic/Jox 著作权归作者所有。请勿转载和采集!

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