Text-Processing

如何將兩個文件與特定列中的公共欄位合併

  • July 25, 2019

我有兩個文件,當某些特定列相同時,我想以某種方式合併它們,將這些行與除一列之外的所有欄位導出,這是該特定列中兩個文件的減法。

例如,我有如下兩個文件,我想輸出第 1 到第 3 列相同的行,第 4 列等於文件第 4 列(File1 - File2)中兩個值的減法。

文件 1:

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
....    

使用 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

引用自:https://unix.stackexchange.com/questions/532030