使用awk合并两个文件并更改重复项的最后一列

时间:2013-12-08 20:30:57

标签: file join awk merge

我有两个制表符分隔的文本文件。我想创建一个包含文件1中所有行的输出文件。但是,如果文件1中第1列中的值与文件2中的第1列匹配,我希望第3行中该值的值从0更改为0 a 1.目前文件1第3列中的所有值均为0。

文件1:

A2M GO:0051056  0
A2ML1   GO:0052548  0
A4GALT  GO:0006486  0

文件2

A2M GO:0051056  1
A2ML1   GO:0052548  1
AAAS    GO:0006486  1

期望的输出:

A2M GO:0051056  1
A2ML1   GO:0052548  1
A4GALT  GO:0006486  0

请让我知道这个问题不清楚。除非有一种简单的替代方法,否则Awk答案是首选。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

试试这一行:

awk 'NR==FNR{a[$1]=$3;next}$1 in a{$3=a[$1]}7' file2 file1