【转】awk實現求和、平均、最大值和最小值的計算操作

0、准备和数据文件

比如有一个数据文件,只有一列(在之前可以通过各种手段过滤出只有数字这一列),比如操作的响应时间

  1. 490898  
  2. 1189235  
  3. 20212  
  4. 1494270  
  5. 146515  
  6. 29369  
  7. 23563  
  8. 563027  
  9. 22976  
  10. 127809  
  11. 16813  
  12. 551646  
  13. 18858  
  14. 18977  

 

1、求和

cat data|awk '{sum+=$1} END {print "Sum = ", sum}' 

 

2、求平均
cat data|awk '{sum+=$1} END {print "Average = ", sum/NR}' 

 

3、求最大值
cat data|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'

 

4、求最小值(min的初始值设置一个超大数即可)
awk 'BEGIN {min = 1999999} {if ($1<min) min=$1 fi} END {print "Min=", min}'

 

5、求访问次数的Top 10 Resource,可以根据此进行优化

cat output/logs/cookie_logs/`date +%u`/cookie_log|grep -v '172.16'|grep -v '127.0.0.1' |awk -F' '  '{ if(index($1,"219.141.246")!=0) print $2; else print $1  } '|sort|uniq -c|sort -n |tail -n 10

转自:http://lixjluck.iteye.com/blog/961271

发表评论

电子邮件地址不会被公开。 必填项已用*标注

机器人检查 *