首页 > 代码库 > sort、uniq、awk
sort、uniq、awk
uniq -c
--conut,显示个数
sort -u
--unique 去重显示
sort -r
--reverse 倒序排列
#vim a.txt
www.kazihuo.com
www.kazihuo.com
post.kazihuo.com
www.kazihuo.com
mp3.kazihuo.com
www.kazihuo.com
www.kazihuo.com
post.kazihuo.com
#awk -F / ‘{print $3}‘ a.txt|sort|uniq -c|sort -r a.txt
5 www.kazihuo.com
2 post.kazihuo.com
1 mp3.kazihuo.com
#awk -F / ‘{S[$3]++}END{for (i in S) print i,S[i]‘} a.txt
post.kazihuo.com 2
mp3.kazihuo.com 1
www.kazihuo.com 5
1)统计/etc/passwd 中各种类型shell的数量:# awk -F: ‘{shells[$NF]++} END{ for(i in shells){print i,shells[i]} }‘ /etc/passwd
2)网站访问状态统计 <当前状态 netstat>:# netstat -ant |grep :80 |awk ‘{access_stat[$NF]++} END{for(i in access_stat ){print i,access_stat[i]}}‘
or # netstat -ant |grep :80 |awk ‘{access_stat[$NF]++} END{for(i in access_stat ){print i,access_stat[i]}}‘ |sort -k2 -n |head
3)统计当前访问的每个IP的数量 <当前状态 netstat>:#netstat -ant |grep :80 |awk -F: ‘{ip_count[$8]++} END{for(i in ip_count){print i,ip_count[i]} }‘ |sort
4)统计Apache/Nginx日志中某一天的PV量 <统计日志>:#grep ‘07/Aug/2012‘ access.log |wc -l
5)统计Apache/Nginx日志中某一天不同IP的访问量 <统计日志>:#grep ‘07/Aug/2012‘ access.log |awk ‘{ips[$1]++} END{for(i in ips){print i,ips[i]} }‘ |sort -k2 -rn |head
or # grep ‘07/Aug/2012‘ access.log |awk ‘{ips[$1]++} END{for(i in ips){print i,ips[i]} }‘ |awk ‘$2>100‘ |sort -k2 -rn
6)统计用户名为4个字符的用户:# awk -F: ‘$1~/^....$/{count++; print $1} END{print "count is: " count}‘ /etc/passwd
or # awk -F: ‘length($1)==4{count++; print $1} END{print "count is: "count}‘ /etc/passwd
sort、uniq、awk