我需要帮助使用awk对多个文件进行一些操作。 我总共有500个文件,每个文件包含800行数据,有两列(第1列和第2列)。
我想要添加每个文件的第一行,第二列(来自所有500个文件)并计算平均值并存储在新的输出文件中(比如average.out)。
然后它继续到第二行,所有文件的第2列(所有500个文件)并计算平均值并存储在average.out中。它一直持续到“average.out”文件包含800行。
在继续我的数据的其他计算之前,我非常需要解决此计算。希望我能得到一些见解。
提前感谢。
答案 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