我有两个如下文件: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