使用awk統計最大值、最小值、平均值

來源:互聯網
上載者:User

使用awk統計最大值、最小值、平均值 幫同事處理問題時遇到一個需求,從日誌中查詢當天某個值的最大值、最小值、平均值,最終通過兩種方式實現: 1、使用sort排序,求最大值、最小值,使用for迴圈求平均值:grep RenewalCheckIbatisDAO.*getHistoryPolicyListByLicenceNo pafa.log |awk -F'time=' '{print $2}'|awk -F'ms' '{a[NR]=$1}  END{b=0;c=a[1];d=a[1];for (i in a){b=b+a[i];if(c>a[i])c=a[i];if (d<a[i]) d=a[i]};print "Min:"c,"Max:"d,"Avg:"b/NR}' 2、使用for迴圈+if判斷求最大值、最小值、平均值:grep RenewalCheckIbatisDAO.*getHistoryPolicyListByLicenceNo pafa.log.2013-05-19 |awk -F'time=' '{print $2}'|awk -F'ms' '{a[NR]=$1}  END{b=0;c=a[1];d=a[1];for (i in a){b=b+a[i];if(c>a[i])c=a[i];if (d<a[i]) d=a[i]};print "Min:"c,"Max:"d,"Avg:"b/NR}' 經過測試在500W的日誌中兩者的效率差不多:[pub_log_mon@cnsz031500 pa18shopauto]$ wc -l pafa.log.2013-05-195038206 pafa.log.2013-05-19 [pub_log_mon@cnsz031500 pa18shopauto]$ time(grep RenewalCheckIbatisDAO.*getHistoryPolicyListByLicenceNo pafa.log.2013-05-19 |awk -F'time=' '{print $2}'|awk -F'ms' '{print $1| "sort -n"}' | awk '{a[NR]=$1}  END{for (i in a)b=b+a[i];print "Min:"a[1],"Max:"a[NR],"Avg:"b/NR}')Min:0 Max:1029 Avg:45.0941real 0m2.450suser 0m0.893ssys 0m1.613s [pub_log_mon@cnsz031500 pa18shopauto]$ time(grep RenewalCheckIbatisDAO.*getHistoryPolicyListByLicenceNo pafa.log.2013-05-19 |awk -F'time=' '{print $2}'|awk -F'ms' '{a[NR]=$1}  END{b=0;c=a[1];d=a[1];for (i in a){b=b+a[i];if(c>a[i])c=a[i];if (d<a[i]) d=a[i]};print "Min:"c,"Max:"d,"Avg:"b/NR}')Min:0 Max:1029 Avg:45.0941real 0m2.432suser 0m0.895ssys 0m1.571s 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.