免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
11 [报告]
发表于 2010-05-18 14:33 |只看该作者

  1. awk -F'.' 'NR==FNR{a[$(NF-1) "." $NF]++}NR!=FNR&&($0 in a){print $0 "\t" a[$0]}' sites.txt domain.txt

  2. 分析发现,只需要提取域名的最后两个域,如果domain.txt 中的域名不是2个字段,这段代码不适用

复制代码

论坛徽章:
0
12 [报告]
发表于 2010-05-18 14:34 |只看该作者
回复 5# 99超人
  1. awk -F. 'NR==FNR{a[$0]=0;next}{t=$(NF-1)"."$NF;if(t in a)a[t]++}END{for(i in a)print i,a[i]}' domain.txt sites.txt
复制代码
试试这个

论坛徽章:
0
13 [报告]
发表于 2010-05-18 14:40 |只看该作者
回复 11# springwind426


    呵呵,额也是这么想的,要不是两个字段的话,还真不好办

论坛徽章:
0
14 [报告]
发表于 2010-05-18 14:40 |只看该作者
#!/bin/sh
for i  in `cat domain.txt`
do
NO=`grep $i sites.txt|wc -l`
echo $i : $NO >> file
done
可以实现

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

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
16 [报告]
发表于 2010-05-18 14:50 |只看该作者
精确匹配sina.sohu等应该可以了吧?
awk 'NR==FNR{a[$0]}NR>FNR{for(i in a){if($0~i)a[i]++}}END{for(i in a){print i,a[i]}}' domain sites

这个应该可以了。

PS:这样的环境能用FS吗?
awk 'NR==FNR{a[$0]}NR>FNR{FS="."}{for(i in a){if(match($2,i)==1)a[i]++}}END{for(i in a){print i,a[i]}}' domain sites
结果为空,晕倒!!!

论坛徽章:
0
17 [报告]
发表于 2010-05-18 14:52 |只看该作者
#!/bin/sh
for i  in `cat domain.txt`
do
NO=`grep $i sites.txt|wc -l`
echo $i : $NO >> file
don ...
changying0521 发表于 2010-05-18 14:40



   用for的方式挺省力,但是有个问题,我的domain.txt可能有1kw条,一次性读入机器可能吃不消,想着awk可以逐行处理,可能好点

论坛徽章:
0
18 [报告]
发表于 2010-05-18 14:55 |只看该作者
回复  where27


   这个也有局限性,domain里面都是2段的域名,如果有3段如sohu.com.cn就出错了
如果 ...
99超人 发表于 2010-05-18 14:41



    是的,我之前在提取域名的时候就遇到这个问题,有可能碰到www.abc.com.cn,def.ab.cn,甚至就一个域名gh.org,统一都按两端域名的话会出问题,我是倒过来取的,而且还要分有无cn这种国家后缀的域名考虑

论坛徽章:
0
19 [报告]
发表于 2010-05-18 15:02 |只看该作者
字符少了不让发
bbgg1983 发表于 2010-05-18 14:23



    谢谢,您的方法不错。想问一下,read的话是每读取一行处理一行吗?还是一次性的全部读取到内存中再做处理

论坛徽章:
0
20 [报告]
发表于 2010-05-18 15:11 |只看该作者
if($0~i) 这段正则如何改的匹配更精准
比如 sites.txt 有一条  xx.abcbaidu.com
这样就会错,要改成$0~.i ...
99超人 发表于 2010-05-18 14:16


$0 ~/\.abc.com$/


您是想要这个表示吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP