免费注册 查看新帖 |

Chinaunix

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

请教:如何用awk处理这个访问列表记录文件? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-14 22:14 |只看该作者 |倒序浏览
Thu May 13 09:24:51 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:52 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:52 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:52 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:52 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:52 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:52 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:53 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:53 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:53 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:53 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:53 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:54 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:55 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:55 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:55 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:55 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:55 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:55 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:58 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:58 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:58 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:58 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:59 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:59 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:59 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:59 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:24:59 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:56:03 2010 192.168.18.179 http://abc.com.cn
Thu May 13 09:56:03 2010 192.168.18.179 http://abc.com.cn
Thu May 13 13:06:31 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:31 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:31 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:31 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:31 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:32 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:32 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:32 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:32 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:33 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:34 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:35 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:36 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:37 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:06:38 2010 192.168.18.179 http://cbd.com.cn/
Thu May 13 13:05:40 2010 192.168.18.179 http://efg.com.cn/
Thu May 13 13:06:40 2010 192.168.18.179 http://efg.com.cn/
Thu May 13 13:06:36 2010 192.168.18.179 http://efg.com.cn/
Thu May 13 13:06:37 2010 192.168.18.179 http://efg.com.cn/
Thu May 13 13:06:38 2010 192.168.18.179 http://efg.com.cn/
Thu May 13 13:06:40 2010 192.168.18.179 http://efg.com.cn/
Thu May 13 13:06:42 2010 192.168.18.179 http://efg.com.cn/


上面是一个访问记录,要求把对每个域名的从最早到最后的访问时间打印出来,格式如下:

09:24:51-09:56:03 http://abc.com.cn
13:06:31-13:06:38 http://cbd.com.cn/
13:05:40-13:06:42 http://efg.com.cn/

请问可以怎么做? 谢!

论坛徽章:
0
2 [报告]
发表于 2010-05-14 22:57 |只看该作者
所有记录都是 当天的?

论坛徽章:
0
3 [报告]
发表于 2010-05-14 23:08 |只看该作者
所有记录都是同一天的?如果是的话
  1. awk '{if(!($NF in min)) {min[$NF]=$4;max[$NF]=$4} else {if($4 > max[$NF]) max[$NF]=$4;if($4 < min[$NF]) min[$NF]=$4;}}END{for(i in min)print min[i],max[i],i}' file
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-05-15 10:24 |只看该作者
  1. awk '!a[$7]++{min[$7]=$4}{max[$7]=$4}END{for(i in min)print min[i]"-"max[i],i}' file
复制代码

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


    估计这个是lz排完序的。。。所以访问时间排列得。。。。。

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


    没关系,没有排序用sort排一下就行了

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

  
谢谢! 这个文件是从squid access log简单处理后取得的,目的是想得到某个IP访问某个网站的开始和结束时间。一条访问网站记录可能是同一天的,但不同的记录就不是同一天了。


能简单解释一下吗? 不然还是知所然不知所以然啊,呵呵。

论坛徽章:
0
8 [报告]
发表于 2010-05-15 17:34 |只看该作者
回复 7# sbuddy


    这个写法的前提是文本已经排序过了(相同的网站按时间从早到晚依次排列),没有排序的话用sort排一下就行了。
简单说就是,从上往下浏览文本,当一个网站($7)第一次出现的时候,把时间($4)赋值给数组min[网站](就是最早的时间),同时也把时间($4)赋值max[网站](最晚时间),不同的是,相同网站的min[网站]后面就不会在变了,而max[网站]是一直在变的,直到网站($7)最后一次出现,max[网站]才固定为$4(因为后面已经没有相同的网站了,所以这个时间就是最晚的时间),后面就只要按格式打印就行了。

语言组织能力有点差,不知道明白没

论坛徽章:
0
9 [报告]
发表于 2010-05-15 19:52 |只看该作者
回复  sbuddy


    这个写法的前提是文本已经排序过了(相同的网站按时间从早到晚依次排列),没有排序 ...
where27 发表于 2010-05-15 17:34


感谢! 果然是高手。学习了。

论坛徽章:
0
10 [报告]
发表于 2010-05-16 16:06 |只看该作者
where27 发表于 2010-05-15 10:24


能否再请教一下,后面的for 循环看懂了,前面的awk '!a[$7]++{min[$7]=$4}{max[$7]=$4}能否简单解释一下结构,没太看懂,呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP