我有两个10 MB的文件,我想找到带有偏移量的最长公共子序列,例如:结果应如下所示:
42 bytes at offset 5 of the first file and offset 8 of the second file
85 bytes at offset 100 of the first file and offset 55 of the second file
...
这是一次性的任务,我只能在一对文件上运行它。
我不关心编程语言,但必须在Linux上运行。
我尝试过命令行工具bsdiff
和xdelta
,但是他们的输出差异文件格式太复杂而无法理解,而且缺少任何文档 - 因此我必须理解复杂且无证件获取这些结果的C源代码。这需要几个小时,而我没有那么多时间,所以我放弃了这条道路。
我已经尝试过Perl模块String :: LCSS_XS,但是它太慢了(现在已经运行了一个小时),Perl模块算法:: Diff :: XS,但它需要太多的内存,并且Perl模块算法:: LCSS,但速度太慢(在Perl中实现)。我在Python中找不到任何有用的东西(内置的difflib太慢了)。
是否有一个工具可以快速(即少于几个小时)运行10 MB文件,我可以在不到一个小时的工作时将其输出转换为我想要的格式?