仅平均来自多个文件的第二列数据

时间:2013-04-18 05:57:18

标签: python perl bash awk

我有64个文件,每个文件名如下:

diffusion-isomalto-thermo1.dat_x.xmgr
diffusion-isomalto-thermo2.dat_x.xmgr
diffusion-isomalto-thermo3.dat_x.xmgr
diffusion-isomalto-thermo4.dat_x.xmgr
.
.
diffusion-isomalto-thermo64.dat_x.xmgr

每个文件包含以下格式的两列数据:

 5.000     1.047
10.000     1.107
15.000     1.211
20.000     1.083
25.000     1.166
30.000     1.368
35.000     1.179
40.000     1.307
45.000     0.985
50.000     0.954

包含50,000行数据。

我想要的是所有文件(64个文件)中所有第一行第二列的平均值,接下来是所有文件中第二行第二列的平均值。

对此有什么好处?

1 个答案:

答案 0 :(得分:2)

使用GNU awk

awk 'FNR==1{a+=$2;next}{b+=$2;close(FILENAME);nextfile}END{print a,b}' diffusion*

假设diffusion*的全局变量只能获取您想要的64个文件。如果不使用像diffusion-isomalto-thermo*.dat_x.xmgr那样严格的东西。