awk基础-统计独立IP

统计独立IP

如下文件内容(下面第一行不存在文件中):

   url      访问IP           访问时间        访问人
a.com.cn|202.109.134.23|2015-11-20 20:34:43|guest
b.com.cn|202.109.134.23|2015-11-20 20:34:48|guest
c.com.cn|202.109.134.24|2015-11-20 20:34:48|guest
a.com.cn|202.109.134.23|2015-11-20 20:34:43|guest
a.com.cn|202.109.134.24|2015-11-20 20:34:43|guest
b.com.cn|202.109.134.25|2015-11-20 20:34:48|guest

需求:统计每个URL的独立访问IP有多少个(去重),并且要为每个URL保存一个对应的文件,得到的结果类似:

a.com.cn  2
b.com.cn  2
c.com.cn  1

并且有三个对应的文件:

a.com.cn.txt
b.com.cn.txt
c.com.cn.txt

awk代码:

awk '
BEGIN{ FS="|" }
!arr[$1,$2]++{ arr1[$1]++ }
END{
  for(i in arr1){print i,arr1[i] >(i".txt")}
}' 1.txt

这里使用了复杂索引的数组arr[$1,$2],这样就基于两份标准进行统计。