
我有兩個如下檔案:file1.txt
a 2019 15
b 2019 20
文件2.txt
a 2020 10
b 2019 15
file1.txt 的所需輸出內容和 diff bw 第三列(來自 file1 和 file2)相對於檔案 1 的第一列)
a 2019 5
b 2019 5
答案1
這是執行此操作的一行程式碼。
join file1.txt file2.txt | awk '{print $1,$2,$3-$5}'
這個join
指令首先將相關值放在同一行上,如下所示:
[gnubeard@mothership: ~/diffy]$ join file{1,2}.txt
a 2019 15 2020 10
b 2019 20 2019 15
然後,awk
列印第一列($1
,例如a
)、第二列($2
,例如2019
),以及第三列的值減去第五列的值($3-$5
,例如15 - 10
。)
結果似乎與您想要的輸出相符:
[gnubeard@mothership: ~/diffy]$ join file{1,2}.txt | awk '{print $1,$2,$3-$5}'
a 2019 5
b 2019 5