请问如何使用golang实现对两个文件的fulljoin?

对这个问题,我举个栗子如下:
文件 1 和文件 2 均含有客户 ID、客户年龄以及客户地址,要找出以下 3 种数据:
1、客户ID在文件 1、文件 2 都存在,但是地址或年龄至少有一个属性不同(变化数据)
2、客户ID在文件 1 中存在,但是文件 2 中不存在(新增数据)
3、客户ID在文件 2 中存在,但是文件 1 中不存在(删除数据)

大概意思就是这样。这个问题实际上用数据库的话很好解决,但是碍于环境限制,无法使用数据库,需要在外部直接对文件进行处理,目前小弟所想到的方法只有遍历对比,但是效率上很难保证。由于资源有限,所以把其中一个文件读入map,遍历另外文件查找KEY再对比的方法也不太实际(ㄒoㄒ)
请问大家有没有什么高效率低资源占用的方法思路呢?非常感谢大家~

阅读 2.1k
2 个回答

程序不知道怎么处理,但是你可以直接使用comm来完成Q2和Q3

The comm utility reads file1 and file2, which should be sorted lexically, and produces three text columns as output: lines only in file1; lines only in file2; and lines in both files.

是不是可以借鉴diff的原理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题