Мне нужно различить два очень большие файлы, слишком большие для diff
обрабатывать. rdiff
может создать для них дельта-файл за несколько секунд, но я бы хотел получить реальную разницу в качестве вывода. Есть ли способ конвертировать rdiff
дельта на обычную разницу?
Я не думаю, что это (легко) возможно. rdiff
анализирует файлы как блоки байтов, генерируя подпись для блоков байтов фиксированного размера. Затем новый файл сравнивается с этими подписями. Файл дельты содержит все разные блоки, которые не обязательно соответствуют строкам в исходном или сравниваемом файле.
Например, оригинал:
AAAAAAAAAA
BBBBBBBBBB
CCCCCCCCCC
DDDDDDDDDD
по сравнению с:
AAAAAAAAAA
BBBBOOOBBB
CCCCCCCCCC
DDDDDDDDDD
может произвести дельту:
[..]BOOOBBB
CCCCCCCCCCC
DDDDDDD[..]
Обычный diff
файлы обычно содержат все измененные строки. В rdiff
delta файл, вероятно, будет только частью некоторых измененных строк, а также многих неизмененных строк. Вам придется снова проанализировать файл (ы), чтобы определить фактические измененные строки.
Для получения дополнительной информации см. rdiff
документация или http://librsync.sourcefrog.net/doc/rdiff.html