【转】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

发表评论

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

机器人检查 *

分享我的最新文章标题到这里

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据