ksh 排序第一列和平均第二列
ksh sort first column and avg second column
正在寻找可以对具有 2 列的文件进行排序的 awk 或类似命令,然后在第二列中生成唯一列名称和总平均值的输出。
例如:
aaaa 11.5
aaaa 1.01
aaaa 5.50
bbbb 12.5
bbbb 1.10
bbbb 9.5
寻找输出
aaaa 6.00
bbbb 7.7
像这样使用 awk:
awk '{a[]+=;b[]++} END{for(i in a)print i,a[i]/b[i]}' File
bbbb 7.7
aaaa 6.00333
如果要四舍五入,用printf。
awk '{a[]+=;b[]++} END{for(i in a)printf("%s %.2f\n",i,a[i]/b[i])}' File
以第一个字段为索引,更新数组a
(将第二个字段相加)。保持计数器 b[first field]
也更新。最后,打印 a
的所有指数和平均值。希望清楚。
对于排序结果,将输出通过管道传输到 sort
(awk '{a[]+=;b[]++} END{for(i in a)print i,a[i]/b[i]}' File | sort
)
正在寻找可以对具有 2 列的文件进行排序的 awk 或类似命令,然后在第二列中生成唯一列名称和总平均值的输出。
例如:
aaaa 11.5
aaaa 1.01
aaaa 5.50
bbbb 12.5
bbbb 1.10
bbbb 9.5
寻找输出
aaaa 6.00
bbbb 7.7
像这样使用 awk:
awk '{a[]+=;b[]++} END{for(i in a)print i,a[i]/b[i]}' File
bbbb 7.7
aaaa 6.00333
如果要四舍五入,用printf。
awk '{a[]+=;b[]++} END{for(i in a)printf("%s %.2f\n",i,a[i]/b[i])}' File
以第一个字段为索引,更新数组a
(将第二个字段相加)。保持计数器 b[first field]
也更新。最后,打印 a
的所有指数和平均值。希望清楚。
对于排序结果,将输出通过管道传输到 sort
(awk '{a[]+=;b[]++} END{for(i in a)print i,a[i]/b[i]}' File | sort
)