从access.log获取前20个IP – 按IPsorting – 添加用户代理

使用这个命令,可以从apache access.log获得前20个Ips

cat access_log | awk '{print $1}' | sort -n | uniq -c | sort -nr | head -20 

我知道,用户代理可以通过以下方式显示:

 awk -F\" '{print $6}' 

要么

 cut -d\" -f 6 

但如何将这些结合起来?

我想按IPsorting并在IP后面追加用户代理。

例:

 544.45.234.5 Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) 

使用sed

 cat access_log | sed -e 's/^\([[:digit:]\.]*\).*"\(.*\)"$/\1 \2/' | sort -n | uniq -c | sort -nr | head -20 

awk '{print $1}'正在丢失信息,因此您稍后将无法获取用户代理。