Gibt es ein Tool zum Vergleichen von Werten in INI-Dateien? [geschlossen]

10

Ich suche nach einem Dateivergleichsdienstprogramm speziell für INI-Dateien, die normalerweise als Einstellungsdateien verwendet werden.

Es gibt viele Dateivergleichstools (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), aber keines der Tools, die ich ausprobiert habe, kann mit INI-Dateien sehr gut umgehen.

Eine typische INI-Datei könnte folgendermaßen aussehen:

[Settings]
Setting1=abc
Setting2=xyz

Das Werkzeug sollte Linien basierend auf der Zeichenfolge vor dem Gleichheitszeichen abgleichen und dann nach dem Gleichheitszeichen Unterschiede in allen anderen Bereichen anzeigen. Die Reihenfolge der Linien innerhalb eines Abschnitts (Abschnitte sind in eckigen Klammern angegeben) spielt keine Rolle und sollte ignoriert werden.

Ich kann kein Werkzeug finden, das damit umgehen kann. In der Regel zeigen vorhandene Werkzeuge Unterschiede am Zeilenanfang vor dem Gleichheitszeichen an (wenn der größte Teil des Textes nach dem Gleichheitszeichen übereinstimmt), haben sie Probleme mit neu geordneten Zeilen (entweder alles als geändert anzeigen oder mit einigen Zeilen übereinstimmen und anzeigen der Rest wird an einer Stelle gelöscht und dann an einer anderen hinzugefügt). Ich habe sogar einige Tools gefunden, bei denen der übereinstimmende Text eingeschränkt werden kann, z. B. mithilfe regulärer Ausdrücke. Diese ignorieren jedoch einfach den Rest der Zeile und ich kann die Zeilen nicht anhand eines Musters (dh alles vor dem Gleichheitszeichen) abgleichen und sie dann basierend vergleichen auf einem anderen (alles nach dem Gleichheitszeichen).

ssollinger
quelle
Nachdem ich Ihre Frage gelesen habe, verstehe ich wirklich nicht, was Sie wollen ... vielleicht können Sie zeigen, was Sie wollen und was Sie haben. Regexes und Diff sollten in der Lage sein, mit dem umzugehen, was Sie tun möchten.
Joseph Kern
Sie sollten Ihren Beitrag umbenennen. Gibt es ein Tool zum Vergleichen von Werten in INI-Dateien?
Joseph Kern
1
Für OS / 2: os2world.com/goran/initools.htm ;-)
splattne
Danke Joseph, guter Punkt, ich habe den Titel bearbeitet. splattne - initools klingt wie es perfekt wäre, schade, dass ich Windows benutze.
Ssollinger

Antworten:

6

Beyond Compare verfügt über eine sortierte INI-Regel, die Sie herunterladen können .

crb
quelle
1
Fantastisch, genau das habe ich gesucht. Ich habe mir Beyond Compare zuvor kurz angesehen, aber die sortierte Ini-Regel nicht bemerkt. Falls jemand interessiert ist, ist der Link in Ihrer Antwort für Beyond 2. Die Vergleichs „ini Regel sortiert“ für Beyond Compare 3 finden Sie hier: scootersoftware.com/download.php?zz=kb_moreformats
ssollinger
Link von ersten Kommentar nicht funktioniert - 404. Es gibt eine andere Seite fr BC4 nur - scootersoftware.com/download.php?zz=kb_moreformatsv4
PL71
2

Ich habe die Dateien oft nur vor dem Vergleich sortiert. Es wird nicht helfen, wenn Sie so etwas haben

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

Unter der Annahme, dass Ihre Schlüssel eindeutig sind (und daher einem Abschnitt zugeordnet werden können), funktioniert dies häufig zur Not.

Mikeage
quelle
Dies hilft manchmal, aber wie Sie sagten, funktioniert es nicht, wenn mehrere Abschnitte vorhanden sind. Es schlägt auch häufig fehl, wenn in einer der Dateien mehrere Zeilen fehlen (die meisten Tools versuchen dann, die falschen Zeilen zu finden).
Ssollinger
wahr; Ich empfehle es nicht als Ideal, aber zur
Not
2

Versuchen Sie es mit vimdiff. Hier ist ein Beispiel mit INI-Dateien.

chmeee
quelle
MEINE AUGEN! .Xdefaults! Ändere sie!
Joseph Kern
1
Ja, es ist sehr hässlich, sorry. Aber ich denke nicht, dass es nichts mit .Xdefaults zu tun hat, da dies eine Konsole ist. Ich werde in der vim-Dokumentation nachsehen, um diese Farben zu ändern :).
Chmeee
1
falls jemand anderes interessiert ist - vimdiff ist über vim.org erhältlich. VimDiff ist in Ordnung, schlägt jedoch fehl, wenn Zeilen vertauscht werden und der Wert dann näher mit der Zeichenfolge vor dem Gleichheitszeichen übereinstimmt. In diesem Fall zeigt VimDiff den Unterschied im Teil vor dem Gleichheitszeichen an, was ich nicht möchte.
Ssollinger
0

Ich habe Winmerge immer gemocht, sehr anpassbar.

Dave
quelle
WinMerge ist großartig, kann aber nicht sehr gut mit Einstellungsdateien (INI-Dateien) umgehen. Es ist besser als einige andere (wie WinDiff), aber meine Frage war nach einem Tool, das speziell die Werte in INI-Dateien vergleicht. WinMerge kann das nicht.
Ssollinger
1
Winmerge verfügt über eine Einstellung zum Vergleichen von Textblöcken, die verschoben wurden und ähnlich sind. Ich verwende es zum Vergleichen von web.config-Dateien, aber ich denke, diese sind kaum besser organisiert als INI-Dateien.
Dave
Ich verwende WinMerge und ersetze jede Datei mit einem regulären Ausdruck, um die Zahlen vor dem Vergleich ( [0-9]+=mit =) zu entfernen . Aber ich muss immer die geänderten Dateien verwerfen. Ich suche auch nach einer besseren Lösung.
Djeidot