awk实现求和、平均、最大值和最小值的计算操作

比如有一个数据文件,只有一列(在之前可以通过各种手段过滤出只有数字这一列),比如操作的响应时间
# cat data
490898
1189235
20212
1494270
146515
29369
23563
563027
22976
127809
16813
551646
18858
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的初始值设置一个超大数即可)

<

pre class=”prettyprint linenums lang-bsh”>awk ‘BEGIN {min = 1999999} {if (1<min) min=1 fi} END {print “Min=”, min}’

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



<br />
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) print2; else print $1  } '|sort|uniq -c|sort -n |tail -n 10
<br />

发表回复

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