【发布时间】:2023-03-28 19:45:01
【问题描述】:
这是我的输入文件(有数千行):
$ cat file.txt
1 495.03
2 503.76
3 512.28
4 520.75
5 529.17
我想使用awk 来计算第一列在 X(比如说 1-100)行数上的中位数以及第二列相应值的平均值。 awk 然后将移动下一组行 (101-201) 并执行相同的操作,即第一列的中位数和第二列的平均值,依此类推。不用说,我正在努力学习 awk 并尝试了几个以前的解决方案,但无法完全发挥作用。
从之前的post,我发现我可以这样计算平均值:
awk '{sum+=$1} NR%3==0 {print sum/3; sum=0}'
这究竟是如何工作的(即 {sum+=$1} 表达式是什么意思?),我如何将其调整为中位数?顺便说一句,第一列将始终被排序。
提前致谢, TP
【问题讨论】:
标签: awk