如何使用awk计算每天记录的平均值?

时间:2017-01-08 12:16:35

标签: awk

我需要分别打印每个日期($ 2)的平均记录($ 1)。

数据显示:

400 1
420 2
390 3
370 1
400 2
410 3
415 4
450 1
430 2
420 3
415 4

输出文件看起来:

406.67 1
416.67 2
406.67 3
415    4   

我试过这段代码,但它给了我错误信息。

awk '{sum1[$2] += $1; count1[$2]++}; END{ for (id in sum1)                                                              { print id, sum1[id]/coun1[id] } }' file.txt

1 个答案:

答案 0 :(得分:1)

@ Alula-如果您不担心输出的顺序(意味着它应该与Input_file相同),那么以下内容可能对您有帮助。

awk '{A[$2]=A[$2]+$1;B[$2]++} END{for(i in A){printf("%.2f,%d\n", A[i]/B[i],i)}}' Input_file

或者,如果您拥有与Input_file相同的数据,并且您需要按照Input_file的相同排序顺序,那么您可以尝试跟随。

awk '{A[$2]=A[$2]+$1;B[$2]++} END{for(i in A){printf("%.2f,%d\n", A[i]/B[i],i)}}'  Input_file | sort -t, -k2  

我希望这会对你有所帮助。