免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: aximofu
打印 上一主题 下一主题

求助:用awk统计站点出现次数 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2010-05-18 15:19 |只看该作者

  1. 如果不确定域名是多长的话,用循环判断,大概还是可以的

  2. awk 'NR==FNR{gsub(/[.]/,"\\.");a[$0"$"]=0}
  3. NR>FNR{for(i in a)if($0~i){a[i]++;break}}
  4. END{for(i in a){v=a[i];gsub(/\\\./,".",i);sub(/\$/,"",i);print i "\t" v }}' domain.txt  sites.txt

  5. 思路就是在读取domain.txt的时候,记录每个域名,并把域名中的.转换成 \. 并在后面加一个$
  6. 在读取sites.txt的时候,依次把domain.txt中的域名与当前行比较,从尾部比较,有的话,就把相应的域名的计数加1

  7. 最后,再遍历域名,做一番转换,并显示结果,如果在sites.txt中没有出现,就显示为0
复制代码

论坛徽章:
0
22 [报告]
发表于 2010-05-18 15:29 |只看该作者
本帖最后由 where27 于 2010-05-18 15:32 编辑

回复 21# springwind426


    你这个好像不能解决5楼的问题。。出现类似www.abcbaidu.com也会算进去,怎么优化呢

论坛徽章:
0
23 [报告]
发表于 2010-05-18 15:31 |只看该作者
回复 1# aximofu


    能否给出你的原始数据啊?比如弄个压缩包放到上面~
这个还挺有意思的~情况很多是吗

求职 : 技术支持/维
论坛徽章:
0
24 [报告]
发表于 2010-05-18 15:31 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

求职 : 技术支持/维
论坛徽章:
0
25 [报告]
发表于 2010-05-18 15:40 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
26 [报告]
发表于 2010-05-18 15:41 |只看该作者
回复 24# 99超人


    果然是超人啊~啥都会

论坛徽章:
0
27 [报告]
发表于 2010-05-18 15:41 |只看该作者
回复  aximofu


    能否给出你的原始数据啊?比如弄个压缩包放到上面~
这个还挺有意思的~情况很多是 ...
iori809 发表于 2010-05-18 15:31



    不好意思,原始数据太大了,有好几百m,没法传上来,只能说我再把各种可能出现的情况都列一下
domain.txt:
sohu.com
sina.com.cn
sina.com
baidu.com
tsinghua.edu.cn
google.fr
263.net
基本上domain就这几种形式,既有直接以国家后缀结尾的,也有以.com,.net等结尾的,也有以.com.cn这样结尾的

sites.txt:
www.sina.com.cn
dl.sina.com.cn
blog.sohu.com
mail.263.net
google.cn
www.pl.gansu.gov.cn
.....
而且因为domain就有1千多万条记录,像之前那位用for $DOMAIN in `cat domain.txt`这种将数据整体读入内存的方式是不可取的

论坛徽章:
0
28 [报告]
发表于 2010-05-18 15:42 |只看该作者

  1. [root@node1 ~]# awk -F. 'NR==FNR{a[$2]++}NR>FNR{if($1 in a) print $1,a[$1] }' site.txt domain.txt
  2. sina 2
  3. baidu 2
  4. sohu 2
  5. google 1
复制代码

论坛徽章:
0
29 [报告]
发表于 2010-05-18 15:43 |只看该作者
没办法,用perl写了个,perl可以支持这种精确的匹配写法
99超人 发表于 2010-05-18 15:31



    谢谢您的帮助,可惜我不会用perl,无法领略您的思路了

论坛徽章:
0
30 [报告]
发表于 2010-05-18 15:43 |只看该作者
回复 27# aximofu


    辛苦了呵呵~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP