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 回答