Linux记录-常用统计awk

#统计第一列ip的个数(uniq -c 打印重复行count计数)

cat ip.txt | awk '{print $1}' | sort | uniq -c | sort -rn | head -n 10

#统计tcp连接状态个数

netstat -an | awk '/tcp/{print $6}' | sort | uniq -c

awk '{print $1}' test.txt | sort | uniq -c

#统计第一列ip的个数
awk '{sum[$1]+=1} END {for(k in sum) print k ":" sum[k]}' ip.txt

#统计前三个ip出现次数最多的(k按第一列排序)
sort ip.txt | uniq -c | sort -nr -t ' ' -k 1 | head -n 3

#统计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
#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
#统计状态码
awk '{sum[$6]++}END{for(status in sum)if(sum[status]>2300) print status, sum[status]}' access.log | sort -rn -k 2
#统计状态码为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

 

posted @ 2019-07-22 23:01  信方  阅读(4182)  评论(0编辑  收藏  举报