awk直行加總與平均值的計算方式

awk直行加總與平均值的計算方式

若您常常需要寫shell script來幫助自己工作,那麼awk絕對不能少,當然今天我不是來介紹awk的基本運用的,老實說我會的也不是很多,我今天是針對我遇到的問題來備忘一下!

譬如說一個檔案abc
$ cat abc
1
2
3
4
5
6
7
8
9
10

若只是這樣的一個簡單檔案,簡簡單單還在能力範圍內我還可以加總和平均
加總
$ fmt -w 100 abc

awk '{ print $1+$2+$3+$4+$5+$6+$7+$8+$9+$10 }'
平均
$ fmt -w 100 abc

awk '{ print ($1+$2+$3+$4+$5+$6+$7+$8+$9+$10)/10 }'

但是我今天遇到的一個檔案有幾千幾萬行,這的確困擾我了,讓我一度困惑了幾十分鐘,好險google一直是我的好朋友,順利的找到了解決的方式,而且也發現會用這方法的人還真是厲害,我目前還是有看沒有懂的狀態,但是無論如何還是先紀錄一下來!

譬如說一個檔案def
$ cat def
1
2
3
~(省略)
2056
2057
2058

加總
$ awk '/nn/&&NR>1{print sum/i;sum=i=0}
> {sum+=$NF;i++}
> END{print sum}' def
2118711
平均
$ awk '/nn/&&NR>1{print sum/i;sum=i=0}
{sum+=$NF;i++}
END{print sum/i}' def
1029.5

這是我目前找到的解決方式囉!若各位高手有任何更好的建議也歡迎提供給我唷!非常感謝!

awk直行加總與平均值的計算方式

awk直行加總與平均值的計算方式 相關文章


參考內容推薦

awk直行加總與平均值的計算方式

2009年4月30日 - 若您常常需要寫shell script來幫助自己工作,那麼awk絕對不能少,當然今天我不是來介紹awk的基本運…

awk直行加總與平均值的計算方式

若您常常需要寫shell script來幫助自己工作,那麼awk絕對不能少,當然今天我不是來介紹aw...

使用AWK 计算加总并算出平均值- CrazyLinux工作室

2011年3月30日 - 使用AWK计算加总并算出平均值 常常会遇到一个档案内容都是数字,一个数字一行,要加总,然后要算出平均值,要怎么做呢?

awk直行加總與平均值的計算方式

2009年4月30日 - 若您常常需要寫shell script來幫助自己工作,那麼awk絕對不能少,當然今天我不是來介紹awk的基本運…

使用AWK 計算加總並算出平均值

2010年7月9日 - 常常會遇到一個檔案內容都是數字, 一個數字一行, 要加總, 然後要算出平均值, 要怎麼做呢? 檔案count.txt vim count.txt 1.1 2.3 3 4 5.5 計算加總$ cat ...

鳥哥的 Linux 私房菜 -

而除了 BEGIN 之外,我們還有 END 呢!另外,如果要用 awk 來進行『計算功能』呢?以底下的例子來看, 假設我有一個薪資資料表檔名為 pay.txt ...