查找两个二进制文件中最长的匹配部分

查找两个二进制文件中最长的匹配部分

假设我有两个二进制文件,每个大约 50MB,可能包含数字相同的部分。有没有一种简单的方法来比较这两个文件,找到最长的相同部分,并将其保存到文件中?

(如果重要的话,有问题的文件是流捕获 AAC 文件。他们有一些音频样板声音相同,但数字可能相同也可能不同。所以我有一个由两部分组成的任务:首先确定样板在数字上是否相同,然后提取相同的部分。)

答案1

我建议您使用cmp它,它非常有用,并且如果您想打印不同的字节,可以使用 -b 等不错的选项,而 -l 则更详细。例如,要比较 a 和 b 文件,请使用如下命令行:

$ cmp -lb a b

它会输出所有不同的字节。如果两个文件相同,cmp 将安静地返回(您可以随时检查其返回值 $?)请注意,带有 -b 选项的 cmp 将仅输出不同的字节,并且如果您不使用 -l 选项,它将停止在不同的第一个字节。

相关内容