2

操作しようとしているデータの種類の例を次に示します。

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で同等のものを見つけることができません。

どうもありがとう。

4

1 に答える 1

3

あなたはほとんどそれを持っています。別の配列nで各エポックのインスタンス数を簡単にカウントできます。

awk '{arr[$1]+=$2; ++n[$1]} END {for (i in arr) {print "[epoch", i,arr[i]/n[i]}}'
于 2010-08-18T19:02:04.933 に答える