来自两个文件的平均行并放入一个文件

时间:2016-03-03 06:52:40

标签: bash awk sed

我有两个文件,foo.dat和bar.dat,可以被认为是m个n矩阵。我想生成一个文件,cum.dat,表示矩阵暨[i,j] =(foo [i,j] + bar [i,j])/ 2。

例如,如果文件的内容如下:

foo.dat :
  11 21
  12 22
  13 23
  14 24
  15 25
  16 26

bar.dat :
  12 22
  13 23
  14 24
  15 25
  16 26
  17 27

我希望cum.dat如下:

  11.5 21.5
  12.5 22.5
  13.5 23.5
  14.5 24.5
  15.5 25.5
  16.5 26.5

1 个答案:

答案 0 :(得分:1)

您可以使用awk:

awk 'NR==FNR{c1[FNR]=$1; c2[FNR]=$2; next} {
     printf "%.1f %.1f\n", ($1+c1[FNR])/2, ($2+c2[FNR])/2}' foo.dat bar.dat

11.5 21.5
12.5 22.5
13.5 23.5
14.5 24.5
15.5 25.5
16.5 26.5