免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1944 | 回复: 7
打印 上一主题 下一主题

大日志文件算IP数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-07 15:06 |只看该作者 |倒序浏览
www.xxx.com 158.21.16.3 - - [06/May/2010:23:59:59 +0800] "GET /www/a/images/tmp/pure/t_left.gif HTTP/1.1" 301 226 "http://kame.xx.com/index.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.4; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MAXTHON 2.0)" 72% 427

上面是日志,文件2.8G , 统计IP数,不要重复的

awk '{ print $2 }' access.log | sort | uniq -c |wc -l

用了6分多钟才出来啊,求高效command

论坛徽章:
0
2 [报告]
发表于 2010-05-07 15:09 |只看该作者
本帖最后由 where27 于 2010-05-07 15:12 编辑

回复 1# BangBull
  1. awk '!a[$2]++{b++}END{print b}' access.log
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-05-07 15:18 |只看该作者
快多了,1m多,就是看不懂      !a[$2]++{b++}

论坛徽章:
0
4 [报告]
发表于 2010-05-07 15:23 |只看该作者
回复 3# BangBull


    意思是只有当$2(也就是ip地址)第一次出现的时候给变量b加1,最后打出b的值,也就是不同ip地址的数量

论坛徽章:
0
5 [报告]
发表于 2010-05-07 15:28 |只看该作者
回复 4# where27

!a[$2]++   为啥不用加{} ,  加上了数值就不对了

论坛徽章:
0
6 [报告]
发表于 2010-05-07 15:38 |只看该作者
回复 5# BangBull


    任何a w k语句都由模式和动作组成。在一个a w k脚本中可能有许多语句。模式部分决定动作语句何时触发及触发事件。处理即对数据进行的操作。如果省略模式部分,动作将时刻保持执行状态。
模式可以是任何条件语句或复合语句或正则表达式。模式包括两个特殊字段B E G I N和E N D。使用B E G I N语句设置计数和打印头。B E G I N语句使用在任何文本浏览动作之前,之后文本浏览动作依据输入文件开始执行。E N D语句用来在a w k完成文本浏览动作后打印输出文本总数和结尾状态标志。如果不特别指明模式, a w k总是匹配或打印行数。
实际动作在大括号{ }内指明。动作大多数用来打印,但是还有些更长的代码诸如i f和循环(l o o p i n g)语句及循环退出结构。如果不指明采取动作, a w k将打印出所有浏览出来的记录。

http://bbs.chinaunix.net/thread-448687-1-1.html

论坛徽章:
0
7 [报告]
发表于 2010-05-07 15:40 |只看该作者
回复 6# where27

谢where27

论坛徽章:
1
水瓶座
日期:2013-11-04 13:16:13
8 [报告]
发表于 2010-05-07 16:49 |只看该作者
向老表看齐
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP