Linux 操作n个不同的文件并将其最大值打印到新文件

Linux 操作n个不同的文件并将其最大值打印到新文件,linux,shell,awk,Linux,Shell,Awk,我有1000个数据文件- F1.dat, F2.dat, ....., F1000.dat F1.dat F2.dat F3.dat F4.dat 2 3 3 3 4 3 3 4 4 2 3 4 3 4 5 2 6 3 4 5 3 4 5 6 5 6 3 2 1 4 2 3 4 0 9 3 2 3 3 1 0 9

我有1000个数据文件-

F1.dat, F2.dat, ....., F1000.dat

F1.dat      F2.dat       F3.dat        F4.dat
2  3  3    3  4  3      3  4  4       2  3  4
3  4  5    2  6  3      4  5  3       4  5  6
5  6  3    2  1  4      2  3  4       0  9  3
2  3  3    1  0  9      1  1  4       3  4  3
.......    ......       ........      .......
我想计算这1000个文件中每个对应条目的最大值

我的意思是,我的新文件的第一个条目(比如a11)将是

new file[a11] = Max(F1[a11], F2[a11], ..., F1000[a11])
与其他所有条目类似。对于上面的示例,输出如下-

newfile.dat
3   4    4 (i.e. max of 2 3 3 2, max of 3 4 4 3, max 3 3 4 4)
4   6    6
5   9    4
3   4    9
..........

我想不出怎么做?

您可以使用
awk
使用
FNR

awk '{
   for (i=1; i<=NF; i++) {
      if ($i > a[FNR,i])
         a[FNR,i]=$i
      }
      rows=FNR;
      cols=NF
}
END {
   for (i=1; i<=rows; i++) {
      for (j=1; j<=cols; j++)
         printf "%s ", a[i,j];
      print ""
   }
}' F*.dat
3 4 4
4 6 6
5 9 4
3 4 9
awk'{
对于(i=1;i a[FNR,i])
a[FNR,i]=$i
}
行=FNR;
cols=NF
}
结束{

对于(i=1;i显示
.dat
文件中的样本数据和预期输出。我用一些样本更新了我的问题。谢谢@anubhava所有这些文件都有类似的3x3矩阵吗?都有相同的维度。我的数据文件约为1500000 x 10大小,非常感谢@anubhava..你解决了我的问题。。