原始日志格式文本如下:
#cat a.lst

10.10.1.1        http://www.hao.com/1.html
10.10.1.2        http://www.hao.com/2.html
10.10.1.3        http://www.hao.com/3.html
10.10.1.4        http://www.hao.com/4.html
10.10.1.2        http://www.hao.com/1.html
10.10.1.1        http://www.hao.com/1.html
10.10.1.1        http://www.hao.com/2.html
10.10.1.2        http://www.hao.com/3.html
10.10.1.1        http://www.hao.com/1.html
10.10.1.3        http://www.hao.com/2.html

求教一shell脚本或perl脚本处理后生成如下报表:

url                                        独立ip                  pv
--------------------------------------------------------------------
http://www.hao.com/1.html        2                4
http://www.hao.com/2.html        3                3
http://www.hao.com/3.html        2                2
http://www.hao.com/4.html        1                1


总结:即通过url计算每个url的独立ip数和pv数,并可按pv数或者独立ip数量进行排序。


【未验证】解决方法有以下三种,有时间再验证吧,先自己留个记录


awk '{if($2 in a){split(a[$2],c," "); c[2]++;if(!match(b[$2],$1)) {c[1]++;b[$2]=b[$2]" "$1;} a[$2]=c[1]" "c[2];} else {a[$2]="1 1";b[$2]=$1}} END{for(i in a)print i,a[i]}' file



awk '!($0 in a){a[$0];a[$2]++}{b[$2]++}END{for(i in b)print i,a[i],b[i]}' urfile | sort


awk '{if(!a[$1,$2]++)b[$2]++;c[$2]++}END{for(i in b)print i,b[i],c[i]}' urfile |sort