处理以下文件内容,将域名取出并根据域名进行计数排序处理
aaa.log
http://www.etiantian.org/index.html
http://www.etiantian.org/1.html
http://post.etiantian.org/index.html
http://mp3.etiantian.org/index.html
http://www.etiantian.org/3.html
http://post.etiantian.org/2.html
解答:
分析:此类问题是运维工作中最常见的问题。可以演变成分析日志,查看TCP各个状态连接数,查看单IP连接数排名等等
方法很多,这里给出7种为例。还可以写出几种留给大家了。
第一类过滤域名方法
法一:
1 [root@zhou ~]# cut -d "/" -f 3 aaa.log | sort | uniq -c 2 1 mp3.etiantian.org 3 2 post.etiantian.org 4 3 www.etiantian.org
法二:(推荐使用)
1 [root@zhou ~]# awk -F "/" '{print $3}' aaa.log | sort | uniq -c 2 1 mp3.etiantian.org 3 2 post.etiantian.org 4 3 www.etiantian.org
法三:
1 [root@zhou ~]# sed 's/^ htt.*\/\///g' aaa.log |sed 's/\/.*html$//g'|sort|uniq -c 2 1 mp3.etiantian.org 3 2 post.etiantian.org 4 3 www.etiantian.org
法四:
1 [root@zhou ~]# cat aaa.log |tr "\/" "\n"|grep etiantian|sort|uniq -c 2 1 mp3.etiantian.org 3 2 post.etiantian.org 4 3 www.etiantian.org
法五:
1 [root@zhou ~]# sed -e 's#^.*//\(.*etiantian.*\)/.*html#\1#gp' aaa.log|sort|uniq -c|sort -rn 2 6 www.etiantian.org 3 4 post.etiantian.org 4 2 mp3.etiantian.org
第二类:awk数组
法六:
1 [root@zhou ~]#cut -d "/" -f 3 aaa.log|awk '{++S[$1]} END {for(key in S) print key,S[key]}'|sort -k2 2 mp3.etiantian.org 1 3 post.etiantian.org 2 4 www.etiantian.org 3
法七:一个利用AWK数组综合解决方法
1 [root@zhou ~]# awk -F "/" '{++S[$3]} END {for(key in S) print key,S[key]}' aaa.log|sort -k2 2 mp3.etiantian.org 1 3 post.etiantian.org 2 4 www.etiantian.org 3