于是,我现在陷入艰难的抉择中,究竟选择谁为最终答案?
回复 62# moperyblue
给出了awk的解决方案,而且花费自己的时间和耐心;
回复 64# sunzhiguolu
给出了perl的解决方案,同时帮助我重新认识了regex,意义重大。
亦要感谢您的回复。测试结果显示,数据存在缺漏(与我计算的相差90多行)
1.99 KB, 下载次数: 20
1.99 KB, 下载次数: 20
1.99 KB, 下载次数: 18
1.99 KB, 下载次数: 16
1.99 KB, 下载次数: 9
1.99 KB, 下载次数: 8
1.99 KB, 下载次数: 5
屏幕快照 2016-12-06 上午10.45.00.png (43.73 KB, 下载次数: 64)
1.99 KB, 下载次数: 14
1.99 KB, 下载次数: 16
1.99 KB, 下载次数: 16
1.99 KB, 下载次数: 16
方兆国儿 发表于 2016-12-05 22:11
回复 6# sunzhiguolu
亦要感谢您的回复。测试结果显示,数据存在缺漏(与我计算的相差90多行)
1.99 KB, 下载次数: 13
方兆国儿 发表于 2016-12-06 13:04
回复 40# yinyuemi
烦请仁兄讲解,不太理解此处if(!c]++) 多谢。
awk '{match($0,/.*"(GET|POST|CONNECT) (https?:\/\/)?[^/]*((\.[^/:]*){2})/,a)}!b[a[3]]++{print a[3]}' cu.txt
.icloud.com
.ipip.net
.qq.com
.symcd.com
.chinaunix.net
.mukewang.com
.imooc.com
.comodoca.com
.jobbole.com
.img168.net
.letsencrypt.org
.wooyun.org
.qbox.me
.bell.ca
.typora.io
.iperf.fr
看了仁兄的代码,思路清晰,非常感谢。
awk '{match($0,/.*"(GET|POST|CONNECT) (https?:\/\/)?[^/]*((\.[^/:]*){2})/,a)}!b[a[3]]++{print a[3]}' cu.txt
Dec 2 10:12:26 ooxx-term[2060]: ooxx_pool/s1 200 {Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36} "CONNECT js.aq.qq.com:443 HTTP/1.1"
.aq.qq
.qq.com
您的代码没有任何问题!
就是这里不明白呀,我的理解是应该匹配 头两个点及之间字符 ,可您说的也很清楚匹配最后两个点?请问这是怎么样的过程呢?
红色部分匹配到 /之后,作为取到的内容再去给 a[3] 做处理 。顺序执行匹配模式,你看我理解的对吗?接着,a[3] 部分匹配的时候,假设为:aa.bb.cc.com我的理解是,得到如下结果.bb.cc可结果却是cc.com请教您,帮忙讲解一下,多谢。如果说,{2} 是匹配最后两组的话,我就理解了! 真的是这样吗?
屏幕快照 2016-12-09 下午4.38.36.png (168.03 KB, 下载次数: 34)
awk '{match($0,/.*"(GET|POST|CONNECT) (https?:\/\/)?[^/]*((\.[^/:]*){2})/,a)}!b[a[3]]++{print a[3]}' cu.txt
红色部分的正则会一直取到后面HTTP("/"之前)为止, 但中间最后这组.qq.com符合条件所以会被保留下来
给出了awk的解决方案,而且花费自己的时间和耐心;
.... 测试结果显示,数据存在缺漏(与我计算的相差90多行)
但是,由于在下对perl 深感疲惫,已彻底弃坑了。
因此,不对perl代码作出评价。
perl --version
This is perl 5, version 22, subversion 1 (v5.22.1) built for cygwin-thread-multi
Copyright 1987-2015, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |