awk读取nginx日志,分隔符为^^A,如何指定-F???

nginx的日志格式为

log_format  main $remote_addr^^A$remote_user^^A$time_local^^A$request^^A$status^^A$body_bytes_sent^^A$http_referer^^A$http_user_agent^^A$http_x_forwarded_for^^A$request_body^^A$http_Auth^^A$http_version^^A$http_registrationid^^A$request_time^^A$upstream_response_time';

日志内容为

140.207.54.198^^A-^^A16/Feb/2016:10:08:44 +0800^^AGET / HTTP/1.1^^A302^^A5^^A-^^AMozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9b4) Gecko/2008030317 Firefox/3.0b4^^A-^^A-^^A-^^A-^^A-^^A0.012^^A0.007
101.226.69.109^^A-^^A16/Feb/2016:10:08:45 +0800^^AGET /event-promotion/aj-get-by-price?&price=25 HTTP/1.1^^A200^^A71^^Ahttp://wechat.flowering100.com/bill/create?check_user_info=1^^AMozilla/5.0 (Linux; U; Android 4.2.1; zh-cn; 2013022 Build/HM2013022) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025489 Mobile Safari/533.1 MicroMessenger/6.2.0.54_r1169949.561 NetType/WIFI Language/zh_CN^^A180.173.59.92^^A-^^A-^^A-^^A-^^A0.024^^A0.018

现要获取所有的IP,awk命令为

awk -F"^^A" '{print $1}' access_wechat.flowering100.com.log

但是输出的却是整个日志内容,错在哪里?

阅读 5.8k
1 个回答

awk -F'\\^\\^A' '{print $1"\t"$4}' access_wechat.flowering100.com.log

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进