我有一个包含两个字段的文件,其中包含我根据字段1进行数字排序的数字。字段1中的数字范围为1到200000,字段2中的数字介于0和1之间。我想获得两者的平均值字段1和字段2分批(基于行)。
以下是指定4行批次时的示例输入输出:
1 0.12
1 0.34
2 0.45
2 0.40
50 0.60
301 0.12
899 0.13
1003 0.14
1300 0.56
1699 0.43
2100 0.25
2500 0.56
输出结果为:
1.5 0.327
563.25 0.247
1899.75 0.45
答案 0 :(得分:4)
你走了:
awk -v n=4 '{s1 += $1; s2 += $2; if (++i % n == 0) { print s1/n, s2/n; s1=s2=0; } }'
说明:
n=4
,批量大小s1
中第1列的总和,s2
中的第2列i
递增1(默认初始值为0,无需设置)i
可以被n
整除而没有余数,那么我们打印平均值,并重置和变量