Кодирование Base64 превращает 6 байтов в 8. Существует 3 возможных кодировки для любого данного простого текста, смещенного на несколько битов каждый раз (и смешаны с другим закодированным текстом, следовательно не тривиальным для нахождения).
>>> '185'.encode('base64')
'MTg1\n'
>>> '\x00185'.encode('base64')
'ADE4NQ==\n'
>>> '\x00\x00185'.encode('base64')
'AAAxODU=\n'
>>> '\x00\x00\x00185'.encode('base64')
'AAAAMTg1\n'
Это объяснение кажется более логичным, чем приведенное выше 2.
выдержка - https://www.gnu.org/software/diffutils/manual/html_node/diff-Performance.html
Обычно отличается от префикса и суффикса, что является общим для обоих файлы до того, как он попытается найти минимальный набор отличий. Данный сайт делает диффузный пробег быстрее, но иногда это может привести к появлению неживотной выход. Опция --горизонт-линии=линии предотвращает отбрасывание последние строки префикса и первые строки Суффикс. Это дает различные дальнейшие возможности найти минимальный выход.
Предположим, что последовательность измененных строк включает в себя последовательность строк на одном конце. и есть идентичная последовательность линий прямо за другой. конец. Команда diff свободно выбирает, какая идентичная последовательность будет включённый в кусок. В этом случае, diff обычно сдвигает кусок границы, когда они соединяют соседние крючки или сдвигают линии крючка. в конце файла. Объединяясь, можно сделать так, чтобы выходной файл выглядел в некоторых случаях лучше.
Ссылка на "строки" означает Х число строк. Поэтому мысленно прочтите это предложение еще раз, но скажите "Х строк", где написано "строк". X будет соответствовать числу, которое было передано в качестве аргумента к diff --horizon-lines=lines
.
Во 2-м абзаце, который я цитировал выше, поясняется, в чем будет заключаться разница с указанным вариантом.