使用此命令可以从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
但如何将它们结合在一起?
我希望按IP排序并将用户代理附加到IP后面。
示例:
544.45.234.5 Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
答案 0 :(得分:1)
使用sed
。
cat access_log | sed -e 's/^\([[:digit:]\.]*\).*"\(.*\)"$/\1 \2/' | sort -n | uniq -c | sort -nr | head -20
您正在丢失awk '{print $1}'
的信息,因此您无法在以后获得用户代理。