1、统计第一列同一ip出现的个数(uniq -c 打印重复行count计数)
cat ip.txt | awk '{print $1}' | sort | uniq -c | sort -rn
awk '{sum[$1]+=1} END {for(k in sum) print k ":" sum[k]}' ip.txt
2、统计tcp连接状态个数
netstat -ant | awk '/tcp/{print $6}' | sort | uniq -c
netstat -an | awk '/^tcp/{++S[$NF]} END {for(a in S) print a, S[a]}'
3、统计前三个ip出现次数最多的(k按第一列排序)
sort ip.txt | uniq -c | sort -nr -t ' ' -k 1 | head -n 3
4、统计access.log ip数量前10个
awk '{sum[$1]++}END{for(ip in sum) print ip, sum[ip]}' access.log | sort -rn -k 2|head -n 10
5、ip数量大于2的(k按第二列排序)
awk '{sum[$1]++}END{for(ip in sum)if(sum[ip]>2) print ip, sum[ip]}' access.log | sort -rn -k 2
6、统计状态码
awk '{sum[$6]++}END{for(status in sum)if(sum[status]>2300) print status, sum[status]}' access.log | sort -rn -k 2
7、统计状态码为200的ip个数
awk '{if($6=="200")sum[$1,$6]++}END{for(ip_num in sum)print ip_num,sum[ip_num]}' access.log |sort -rn -k 2|head -5
8、多列统计求和
awk '{for(n=1;n<=NF;n++)t[n]+=$n}END{for(n=1;n<=NF;n++)printf t[n]" ";print"\n"}'
9、查找重复行