我有两个文件,当某些特定列相同时,我想以某种方式合并它们,导出包含除一列之外的所有字段的行,这是该特定列中两个文件的减法。
例如,我有如下两个文件,我想输出第 1 列到第 3 列相同的行,并且第 4 列等于文件第 4 列(文件 1 - 文件 2)中两个值的减法。
文件一:
10 20 30 50
100 200 300 850
150 250 350 900
.....
文件2:
100 200 300 840
15 25 35 55
150 250 350 880
....
输出:
100 200 300 10
150 250 350 20
....
答案1
使用awk:
$ awk '{k = $1 FS $2 FS $3} NR==FNR {a[k] = $4; next} k in a {print k, a[k]-$4}' File1 File2
100 200 300 10
150 250 350 20