Чи є інструмент для порівняння значень у файлах .ini? [зачинено]


10

Я шукаю утиліту порівняння файлів, спеціально для файлів .ini, зазвичай використовується як файли налаштувань.

Існує безліч інструментів порівняння файлів (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), але жоден із інструментів, які я намагався, не може дуже добре обробляти файли .ini.

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

[Settings]
Setting1=abc
Setting2=xyz

Інструмент повинен відповідати рядкам на основі рядка перед знаком рівності, а потім показувати відмінності у всьому іншому після знака рівності. Порядок рядків у розділі (секції позначені квадратними дужками) не має значення і його слід ігнорувати.

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


Тепер, коли я прочитав ваше запитання, я дійсно не розумію, чого ви хочете ... можливо, ви можете показати, що ви хочете, а також те, що у вас є. регулярні вирівнювання та розрізнення повинні мати можливість вирішувати те, що ви хочете зробити.
Джозеф Керн

Ви повинні перейменувати свою публікацію .... Чи є інструмент для порівняння значень у файлах .ini?
Джозеф Керн

1
Для ОС / 2: os2world.com/goran/initools.htm ;-)
splattne

Дякую Джозефу, хороший момент, я відредагував заголовок. splattne - initools звучить так, як це було б ідеально, ганьба я використовую Windows.
ssollinger

Відповіді:


6

Більше порівняння має відсортоване правило INI, яке ви можете завантажити .


1
Фантастично, саме це я шукав. Я коротко переглянув Beyond Compare раніше, але не помітив відсортованого правила ini. У разі , якщо кому - то цікаво, то посилання в вашій відповіді для Beyond Compare 2. «впорядкований INI правило» для Beyond Compare 3 доступний тут: scootersoftware.com/download.php?zz=kb_moreformats
ssollinger

Посилання з першого коментарю не працює - 404. Існує ще одна сторінка фр BC4 тільки - scootersoftware.com/download.php?zz=kb_moreformatsv4
pl71


2

Я часто просто сортував файли перед порівнянням. Це не допоможе, якщо у вас є щось подібне

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

але якщо припустити, що ваші ключі унікальні (і тому вони можуть бути узгоджені з секцією), він часто працює вкрапцем.


Іноді це допомагає, однак, як ви сказали, він не працює, якщо є кілька розділів, він також часто виходить з ладу, якщо в одному з файлів бракує декількох рядків (більшість інструментів потім починають намагатися відповідати неправильним рядкам).
ssollinger

правда; Я не рекомендую це як ідеал, але
вкрай дрібно

2

Спробуйте vimdiff. Ось приклад з .ini файлами.


МОЇ ОЧІ! .Xdefaults! Змініть їх!
Джозеф Керн

1
Так, це дуже потворно, вибачте. Але я не думаю, що це не має нічого спільного з .Xdefaults, оскільки це консоль. Я перегляну документацію vim, щоб змінити ці кольори :).
chmeee

1
у випадку, якщо хтось інший зацікавлений - vimdiff доступний через vim.org. VimDiff нормально, але він не вдається, коли рядки підміняються, і тоді значення ближче до рівня, ніж рядок перед знаком рівності. У цьому випадку VimDiff покаже різницю в частині перед знаком рівності, а це не те, що я хочу.
ssollinger


0

Мені завжди подобався Winmerge, дуже настроюється.


WinMerge чудовий, але не дуже добре справляється з файлами налаштувань (.ini файлами). Це краще, ніж деякі інші (наприклад, WinDiff), але моє запитання стосувалося інструменту, який конкретно порівнює значення у файлах .ini. WinMerge не може цього зробити.
ssollinger

1
У Winmerge є налаштування для порівняння блоків тексту, які перемістилися і схожі. Я використовую його для порівняння файлів web.config, але, мабуть, вони трохи більш організовані, ніж ini-файли.
Дейв

Я використовую WinMerge і роблю підстановку регулярного вираження для кожного файлу, щоб видалити числа перед порівнянням ( [0-9]+=до =). Але я завжди повинен відкинути змінені файли. Я також шукаю кращого рішення.
djeidot
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.