Linux中awk命令正确的求最大值、最小值、平均值、总和
生活随笔
收集整理的這篇文章主要介紹了
Linux中awk命令正确的求最大值、最小值、平均值、总和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
test.txt文件內容:
9 11 35 21 42 118求最大值:
awk 'BEGIN {max = 0} {if ($1+0 > max+0) max=$1} END {print "Max=", max}' test.txt Max= 118求最小值:
awk 'BEGIN {min = 65536} {if ($1+0 < min+0) min=$1} END {print "Min=", min}' test.txt Min= 9求和:
cat test.txt|awk '{sum+=$1} END {print "Sum= ", sum}' Sum= 236求平均值:
cat test.txt|awk '{sum+=$1} END {print "Avg= ", sum/NR}' Avg= 39.3333?
求最大值(錯誤的求法):
cat test.txt|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}' Max= 9求最小值(錯誤的求法):
cat test.txt|awk 'BEGIN{min = 65536}{if ($1<min) min=$1 fi}END{print "Min=", min}' Min= 11?
求最大值(正確的求法):
cat test.txt|awk 'BEGIN {max = 0} {if ($1+0>max+0) max=$1 fi} END {print "Max=", max}' Max= 118求最小值(正確的求法):
cat test.txt|awk 'BEGIN{min = 65536}{if ($1+0<min+0) min=$1 fi}END{print "Min=", min}' Min= 9awk默認按照字符串比較的,如果要比較數值,需要先強制類型轉換,即 $1+0,轉換成整數。
?
當然,在實際工作中要統計耗時等,不可能每行正好是一個數字,要從茫茫日志中做統計,需綜合利用grep、awk等命令。如如下命令先從日志中獲得如上test.txt文件。
grep 關鍵字 large.log | awk -F '"t":"' '{print $2}' | awk -F '","' '{print $1}' > test.txt?
總結
以上是生活随笔為你收集整理的Linux中awk命令正确的求最大值、最小值、平均值、总和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql(join on 和where的执
- 下一篇: 掘金浏览器插件安装图文教程