如何比较一个linux文件的2个文件列与另一个文件的第二列进行比较并获得差异

时间:2016-02-19 13:06:22

标签: linux awk

如何比较2个文件?我需要将一个linux文件的列与另一个文件的第二列进行比较,然后得到差异。

我们说我有以下文件。

文件1:

a 3
b 6
c 8
d 7
g 5
p 16

文件2:

a 1
b 6
c 8
d 7
g 5

我需要将文件1的第二列与文件2的第二列进行比较,然后得到差异。

所需的输出文件1 - 文件2:

a 2
b 0
c 0
d 0
g 0
p 16

1 个答案:

答案 0 :(得分:1)

这个awk单行程适用于您的示例:

awk 'NR==FNR{a[$1]=$2;next}{print $1,a[$1]-$2;delete a[$1]}
       END{for(x in a)print x, a[x]}' file1 file2