【发布时间】:2015-03-31 20:19:21
【问题描述】:
假设我有一些看起来像这样的数据
1,2,2
3,4,5
4,5,6
1,2,3
4,5,6
1,2,2
包含在 csv 文件中。现在我想这样定位块平均值:添加块(例如两行)然后取平均值:
1,2,2
3,4,5
+
4,5,6
1,2,3
+
4,5,6
1,2,2
这会给
9,12,14
5,8,10
按块数 (3) 平均:
3,4,4.67
1.67,2.67,3.33
有没有一种简单的方法可以在 awk、sed、grep 或纯 bash 中实现这一目标?我的真实数据以 GB 为单位,因此它确实需要非常高效。
【问题讨论】:
-
我现在在玩 awk:
awk '{ sum += $1 } END { print sum }' file。而且我试图弄清楚如何在一个块中执行它,以便它对所有列求和,但也可以在块中执行它。 IE。在我上面的示例中,我想按位置和块数进行平均。我可以在 python 中快速执行此操作,但我的文件太大,无法成为有效的路径。