如何合并具有唯一ID的两个文件?

时间:2014-09-22 15:29:46

标签: shell unix

我有两个文件。 File1和File2。

File1中:

1 a
2 b

文件2:

1 a
2 c
3 d

我想生成一个包含以下内容的文件:

1 a
2 c
3 d

File2已插入或更新到File1中的行,类似于UPSERT功能在SQL中的工作方式。

1 个答案:

答案 0 :(得分:2)

我猜这里,因为问题有点模糊。无论如何,awk中的某些东西只是使用第一个值作为key来存储第二个值。如果多次找到密钥,则第二个值总是覆盖数组中的内容:

$ awk '{a[$1]=$0}END{for (i in a) print a[i]}' f1 f2
1 a
2 c
3 d

编辑:新版本采用任意宽文件,而不是绑定到两个字段。