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

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

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

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

[Settings]
Setting1=abc
Setting2=xyz

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

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

6 ответов

Решение

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

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

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

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

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

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

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

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

Другие вопросы по тегам