awk 常用命令测试

1.排序并统计相同ip访问次数

cat access.log |awk '{print  $ 1}' | grep -v  "^ $"|sort|uniq -c

awk '{S[$1]++} END{for (i in S) print S[i],i}' access.log

2.统计各种连接状态的数量

netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}'

NF]:表示数组元素的值;++S[$NF]:表示对某个数加一

3.统计总访问量

cat access.log |awk '{print $ 1}'|sort|uniq -c|awk 'BEGIN{sum=0} {sum+= $1} END{print "PV is",sum}'

4.统计输出格式:[访问次数*单个文件大小] [访问次数] [访问的文件]

awk '{array_num[)7]=array_size[10}END{for(i in array_num) print array_size[i],array_num[i],i}' access_2010-12-8.log |sort -rn|head

awk '{array_num[)7]=array_size[10}END{for(i in array_num) print "PV:"array_size[i],"\t""Count:"array_num[i],"\t""File:"i}' access.log |sort -rn|head

awk '{print 10}' s-access.log |sort|uniq -c|sort -r|awk '{print "PV:")3,"\t""Count:"$ 1,"\t""File:" $2}'|sort -rn|head

5.统计/etc/passwd 中各种类型shell的数量

awk -F: '{shells[$NF]++} END{ for(i in shells){print i,shells[i]} }' /etc/passwd

6.网站访问状态统计

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

7.统计当前访问的每个IP的数量

netstat -ant |grep :80 |awk -F: '{ip_count[$8]++} END{for(i in ip_count){print i,ip_count[i]} }' |sort

8.统计Apache/Nginx日志中某一天的PV量

grep '07/Aug/2012' access.log |wc -l

9.统计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 

10.统计用户名为4个字符的用户

awk -F: '/{count++; print $1} END{print "count is: " count}' /etc/passwd

or

awk -F: 'length()%3D%3D4%7Bcount%2B%2B%3B%20print%20&preview=true)1} END{print "count is: "count}' /etc/passwd

11.删除配置文件中#号注释行

sed -r -i '/^#/d' file.conf

12.删除无内容空行

sed -r '/^$/d' file.conf

全部评论

相关推荐

04-15 23:42
中山大学 Java
ResourceUtilization:过几天楼主就会捧着一堆offer来问牛友们该怎么选辣
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务