为了账号安全,请及时绑定邮箱和手机立即绑定

golang - 比较两个txt文件

golang - 比较两个txt文件

Go
拉风的咖菲猫 2021-11-08 10:16:27
我想知道文件更改时的内容有一个简单的txt文件textOne 1,2,3,4,5,6,7,8,9,10我把它改成textTwo 1,2,3,4,7,7,7,8,9,10所以 'One' 和 '5,6' 变成了 'two', '7,7'我可以找到循环改变的东西。但我想知道是否有更好的方法来检查
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

而不是循环使用标准的第三方库,优化很小。

我过去使用过的库之一是google-diff-match-patch 的 Go 端口(@Not_a_golfer 在评论中建议的库相同。)。

您可以通过首先计算sha2两个文件的哈希来优化它,如果它们不相同,您可以假设它们被更改,否则(可能)它们相同,并跳过差异操作。

这种优化的一个缺点是,由于鸽巢原理,理论上可能对于不同的内容具有相同的哈希值。但是,发生这种情况的可能性很小。

编辑(基于@elithrar 的评论): 由于对非常大的文件进行哈希计算,因此可能很耗时。您可以sha2分块计算(大小取决于系列中的特定哈希算法sha2)。这使您能够及早退出,并提高速度。


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信