Bash:从一个文件中读取一列,并在当前文件中除以一列

时间:2016-02-17 14:33:38

标签: bash awk

我想使用bash从一个文件中读取一列并在当前文件中除以一列并替换该列。

例如,我有一个名为input.txt的文件

1 2 3
1 4 3
1 8 3

我想读取文件的第二列并除以当前文件的第3列aim_file.txt:

1 1 4
3 4 8
8 8 16

所以我得到了result.txt:

1 1 2
3 4 2
8 8 2

1 个答案:

答案 0 :(得分:2)

使用awk你可以这样做:

awk 'NR==FNR{a[FNR]=$2; next} a[FNR]{$3 /= a[FNR]} 1' input.txt aim_file.txt

<强>输出:

1 1 2
3 4 2
8 8 2
  • 我们首先迭代input.txt并按行#的索引将第二列存储在关联数组中
  • 接下来在迭代aim_file.txt时,我们将第3列与存储在数组
  • 中的值分开