我想使用 bash 从一个文件中读取一列,并在当前文件中除以一列并替换该列。
例如,我有一个名为input的文件.txt
1 2 3
1 4 3
1 8 3
我想读取文件的第二列并与当前文件的第三列除aim_file.txt:
1 1 4
3 4 8
8 8 16
所以我得到了结果.txt:
1 1 2
3 4 2
8 8 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
,并通过 line# 的索引将第二列存储在关联数组中 - 接下来,在迭代
aim_file.txt
我们将第 3 列与存储在数组中的值除以