今天在網上看到一個求web連接平均時間的shell命令,在自己的機器上試了下,發現不能使用,居然出現awk: fatal: division by zero attempted這樣的錯誤,毛了就自己改了下shell命令.
原shell腳本例子:
復制代碼 代碼如下:
cat access.log|grep "connect cbp" |awk 'BEGIN{sum=0;count=0;}{sum+=$10;count++;}END{printf("sum=%d,count=%d,avg=%f\n",sum,count, sum/count)}'
修改后的shell:
復制代碼 代碼如下:
cat access.log |awk '{sum+=$10;count+=1} END{print "SUM:"sum"\nAVG:"sum/count"\nCOUNT:"count}'
執行結果:
復制代碼 代碼如下:
SUM:33403166
AVG:7951.24
COUNT:4201
當然直接改原來的也可以:
復制代碼 代碼如下:
cat access.log |awk 'BEGIN{sum=0;count=0;}{sum+=$10;count++;}END{printf("sum=%d,count=%d,avg=%f\n",sum,count, sum/count)}'
執行結果:
復制代碼 代碼如下:
sum=33403166,count=4201,avg=7951.241609
可以看到原shell腳本求的結果更加精確些.有需要的可以自己拿去試試.