2010-08-18 96 views
2

下面是數據的,我試圖操縱類型的例子:需要在awk數組援助 - 平均

1213954013615]: 992 
1213954013615]: 993 
1213954013615]: 994 
1213954013615]: 995 
1213954013615]: 995 
1213954013615]: 996 
1213954013615]: 996 
1213954013615]: 996 
1213954013615]: 998 
1213954247424]: 100 
1213954247424]: 1002 
1213954247424]: 1007 
1213954303390]: 111 
1213954303390]: 1110 
1213954303390]: 1111 
1213954303390]: 1112 
1213954303390]: 1114 
1213954303390]: 112 
1213954303390]: 112 
1213954303390]: 112 
1213954303390]: 112 

......我所希望實現的是基於時代產生的平均數字在左邊。例如,添加992,993,994,995,995,996,996,996,998,併除以曆元時間「1213954013615」的唯一實例的數量,對每個獨特的歷元時間組進行這一操作。

這是我到目前爲止有:

awk '{arr[$1]+=$2} END {for (i in arr) {print "[epoch", i,arr[i]/NR}}' 

但這當然,通過劃時代的總次數劃分,我需要這個東西等同於「uniq的」,但無法找到awk中的等價物。

非常感謝。

回答

3

你幾乎擁有它。其易算每曆元的實例的數量在一個單獨的陣列Ñ

awk '{arr[$1]+=$2; ++n[$1]} END {for (i in arr) {print "[epoch", i,arr[i]/n[i]}}' 
+0

有史以來最快的響應。精彩的工作。感謝schot! – 2010-08-18 19:06:35

+0

@Jimjim我只需要添加幾個字符到你自己的解決方案,很高興成爲幫助。 – schot 2010-08-18 19:18:24

+0

@Jimjim,你應該考慮接受這個答案,如果它適合你。 – 2010-08-18 19:45:51