golang - 比较两个txt文件

我想知道文件更改时的内容

有一个简单的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'

我可以找到循环改变的东西。但我想知道是否有更好的方法来检查


拉风的咖菲猫
浏览 290回答 1
1回答

料青山看我应如是

而不是循环使用标准的第三方库,优化很小。我过去使用过的库之一是google-diff-match-patch 的 Go 端口(@Not_a_golfer 在评论中建议的库相同。)。您可以通过首先计算sha2两个文件的哈希来优化它,如果它们不相同,您可以假设它们被更改,否则(可能)它们相同,并跳过差异操作。这种优化的一个缺点是,由于鸽巢原理,理论上可能对于不同的内容具有相同的哈希值。但是,发生这种情况的可能性很小。编辑(基于@elithrar 的评论): 由于对非常大的文件进行哈希计算,因此可能很耗时。您可以sha2分块计算(大小取决于系列中的特定哈希算法sha2)。这使您能够及早退出,并提高速度。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go