a-awk 计算数值最大,最小,平均值并保留指定位数
生活随笔
收集整理的這篇文章主要介紹了
a-awk 计算数值最大,最小,平均值并保留指定位数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
- awk 計(jì)算最大值
echo -e "1\n2\n3\n10\n9\n5\n11\n"|awk 'BEGIN {max = 0} {if ($1>max) max=$1 } END {print "Max=", max}'
輸出為:Max= 11
或者可以使用sort命令更為便捷:
cho -e "1\n2\n3\n10\n9\n5\n11\n"|sort -n |tail -n 1sort會(huì)升序排序,則最后一個(gè)會(huì)為最大值,直接tail -n 1即可 - awk 計(jì)算最小值
echo -e "1\n2\n3\n10\n9\n5\n11"|awk 'BEGIN {min = 0} {if ($1<min) min=$1 } END {print "Min=", min}'
輸出為:min= 1
這里注意awk中的比較同樣會(huì)比較ascsii碼,即如果待計(jì)算數(shù)值中包括字母,awk會(huì)按照字母的ascsii碼進(jìn)行比較
同樣可以用sort命令進(jìn)行比較:
echo -e "1\n2\n3\n10\n9\n5\n11"|sort -n |head -n 1獲取排序后的第一個(gè)內(nèi)容即為最小的 - awk計(jì)算平均值
echo -e "1\n2\n3\n10\n9\n5\n11"|awk '{a+=$1}END{if(NR!=0) printf("avrage=%.3f",a/NR)}'
輸出為:avrage=5.857
這里可以利用awk的C語言語法,進(jìn)行格式化輸出;同時(shí)要注意這里做除法時(shí)記得判斷除數(shù)不能為0,否則會(huì)報(bào)如下錯(cuò)誤:awk: division by zeroinput record number 1, file source line number 1
總結(jié)
以上是生活随笔為你收集整理的a-awk 计算数值最大,最小,平均值并保留指定位数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 系统调用 read,writ
- 下一篇: linux进程间通信:命名管道FIFO