Назад | Перейти на главную страницу

Есть ли инструмент для сравнения значений в файлах .ini?

Я ищу утилиту сравнения файлов специально для файлов .ini, обычно используемых в качестве файлов настроек.

Существует множество инструментов для сравнения файлов (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), но ни один из инструментов, которые я пробовал, не может хорошо обрабатывать файлы .ini.

Типичный файл .ini может выглядеть так:

[Settings]
Setting1=abc
Setting2=xyz

Инструмент должен сопоставлять строки на основе строки перед знаком равенства, а затем показывать различия во всем остальном после знака равенства. Порядок строк в разделе (разделы указаны квадратными скобками) не имеет значения, и его следует игнорировать.

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

Beyond Compare имеет отсортированное правило INI ты можешь скачать.

Да, я знаю, что это древний вопрос, но я хотел бы предложить инструмент, который я написал:

dzIniFileFormatter который доступен из SourceForge

Я часто просто сортирую файлы перед сравнением. Не поможет, если у вас есть что-то вроде

[foo]
bar1=xyz
bar2=abc
[foo2]
bar1=lky

но если предположить, что ваши ключи уникальны (и, следовательно, могут быть сопоставлены с разделом), это часто работает в крайнем случае.

Попробуйте vimdiff. Вот пример с файлами .ini.

Эта услуга должна вам помочь. Сравнивает более двух файлов конфигурации http://inicompare.io/

Мне всегда нравился Winmerge, очень настраиваемый.