有日志1.log,内容如下:1
2112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com “/seccode.php?update=0.5593110133088248″ 200″http://formula-x.haotui.com/registerbbs.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)”
61.147.76.51 – [25/Sep/2013:16:08:31 +0800]xyzdiy.5d6d.com “/attachment.php?aid=4554&k=9ce51e2c376bc861603c7689d97c04a1&t=1334564048&fid=9&sid=zgohwYoLZq2qPW233ZIRsJiUeu22XqE8f49jY9mouRSoE71″ 301″http://xyzdiy.5d6d.com/thread-1435-1-23.html” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”
要求: 统计出每个IP的访问量有多少?
思路:
每一行日志表示一次的访问 开头的就是表示访问的IP地址,然后再统计出该IP地址的访问次数即可
awk '{print $1}'
可以打印出每行的第一段 -F
指定分隔符 不写默认空格
sort -n
以数字顺序排序
uniq -c
去重复并统计出重复的次数 前提是必须按顺序排序
内容:
1 | awk -F '–' '{print $1}' 1.log |sort -n |uniq -c |