今天在網(wǎng)上看到一個(gè)求web連接平均時(shí)間的shell命令,在自己的機(jī)器上試了下,發(fā)現(xiàn)不能使用,居然出現(xiàn)awk: fatal: division by zero attempted這樣的錯(cuò)誤,毛了就自己改了下shell命令.
原shell腳本例子:
復(fù)制代碼 代碼如下:
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:
復(fù)制代碼 代碼如下:
cat access.log |awk '{sum+=$10;count+=1} END{print "SUM:"sum"\nAVG:"sum/count"\nCOUNT:"count}'
執(zhí)行結(jié)果:
復(fù)制代碼 代碼如下:
SUM:33403166
AVG:7951.24
COUNT:4201
當(dāng)然直接改原來的也可以:
復(fù)制代碼 代碼如下:
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)}'
執(zhí)行結(jié)果:
復(fù)制代碼 代碼如下:
sum=33403166,count=4201,avg=7951.241609
可以看到原shell腳本求的結(jié)果更加精確些.有需要的可以自己拿去試試.