20

У меня есть файл, который имеет только одну строку. Его размер составляет около 20000 байт.

Файл был изменен, и я хотел знать, где.

Я подумал об использовании diff, но он показывает мне полную строку, потому что она выводит строку, которая имеет разницу - но в этом случае это единственная строка в файле, которая имеет различия.

Поэтому я хотел посмотреть, в чем разница.

Любой совет?

3 ответа3

11

Предполагая, что есть много пробелов, как в обычном тексте, вы можете разбить файл по словам и сравнить его с обычным инструментом сравнения, например, meld:

tr -s ' ' '\n' < file1.txt > file1.txt.split
tr -s ' ' '\n' < file2.txt > file2.txt.split
meld file1.txt.split file2.txt.split
4

Я нашел бы diff, который делает внутристрочные различия. Я использую xxdiff в UNIX. Я думаю, что WinMerge делает внутристрочные различия в Windows.

Другие ответы также хороши: wdiff или разбиение на фрагменты - границы фрагментов легче определить, если данные разделены, например, каналом или запятой.

3

Если это единовременная проблема, я создаю копии файлов с \n символами, вставляемыми каждые 50 символов, а затем раздаю эти копии. (Я выбрал 50, потому что в математике легко перейти от разного номера строки к байтовому смещению в исходных файлах, но это можно изменить в зависимости от того, что я нашел.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .