实际问题:统计后台日志中域名/IP地址等出现的次数并进行排序。
处理以下文本内容,将域名取出并进行计数排序,如处理:
http://www.baidu.com/index.html
http://www.baidu.com/1.html
http://post.baidu.com/index.html
http://mp3.baidu.com/index.html
http://www.baidu.com/3.html
http://post.baidu.com/2.html
要求得到如下结果: (可以使用 BASH / PERL / PHP / C
任意一种)
域名的出现的次数 域名
3 www.baidu.com
2 post.baidu.com
1 mp3.baidu.com
使用 BASH 实现
awk '{for(i=1;i<=NF;i++) print $i}' website.txt | cut -d'/' -f 3 | sort | uniq -ic| sort -nr
使用 PHP 实现
<?php
$subject = <<< EOF
http://www.baidu.com/index.html http://www.baidu.com/1.html
http://post.baidu.com/index.html
http://mp3.baidu.com/index.html
http://www.baidu.com/3.html
http://post.baidu.com/2.html
EOF;
preg_match_all('|http://(.*)/|U', $subject, $matches);
$res = array_count_values($matches[1]);
foreach ($res as $key => $value) {
echo $value." ".$key."\n";
}
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2018-06-22 21:36 PM