我需要分别打印每个日期($ 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
答案 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
我希望这会对你有所帮助。