从许多文件计算第二列相同行的平均值

时间:2012-11-07 08:54:32

标签: awk

我需要帮助使用awk对多个文件进行一些操作。 我总共有500个文件,每个文件包含800行数据,有两列(第1列和第2列)。

我想要添加每个文件的第一行,第二列(来自所有500个文件)并计算平均值并存储在新的输出文件中(比如average.out)。

然后它继续到第二行,所有文件的第2列(所有500个文件)并计算平均值并存储在average.out中。它一直持续到“average.out”文件包含800行。

在继续我的数据的其他计算之前,我非常需要解决此计算。希望我能得到一些见解。

提前感谢。

1 个答案:

答案 0 :(得分:3)

这将显示所有行号及其平均值。

awk '{a[FNR]=a[FNR]+$2;b[FNR]++;}END{for(i in a){print i,a[i]/b[i]}}' *your_file*

例如:

line_number its_average。

测试如下:

> cat temp
1 10 
2 28
3 20
4 79
> cat temp2
1 12 
2 30
3 22
4 81
> awk '{a[FNR]=a[FNR]+$2;b[FNR]++;}END{for(i in a){print i,a[i]/b[i]}}' temp temp2
2 29
3 21
4 80
1 11