2009-07-02 11 views
56

So funktioniert das Dienstprogramm Diff wie ich für 2 Dateien will, aber ich habe ein Projekt, das Vergleiche mit mehr als 2 Dateien gleichzeitig erfordert, vielleicht bis zu 10 gleichzeitig. Dies erfordert, dass alle diese Dateien auch nebeneinander liegen. Meine Recherchen haben nicht wirklich etwas ergeben, vimdiff scheint bis jetzt die beste zu sein, mit der Fähigkeit, 4 auf einmal zu vergleichen.DIFF-Dienstprogramm funktioniert für 2 Dateien. Wie kann man mehr als 2 Dateien gleichzeitig vergleichen?

Meine Frage: Gibt es ein Dienstprogramm, um mehr als 2 Dateien gleichzeitig zu vergleichen, oder eine Möglichkeit, Diff/Vimdiff zu hacken, so dass es mehrere Vergleiche machen kann? Die Dateien, die ich vergleichen werde, sind relativ kurz, also sollte es nicht zu langsam sein.

Vielen Dank im Voraus!

Antwort

88

Die Anzeige von 10 Dateien nebeneinander und die Hervorhebung von Unterschieden kann einfach mit Diffuse erfolgen. Geben Sie einfach alle Dateien auf der Kommandozeile wie folgt aus:

diffuse 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt

+1

Wow das ist genial! Danke für die Antwort auch spät, ich brauchte immer noch die Hilfe. –

+0

Wie heißt diese Art von Vergleich? – leeand00

+3

Fantastisches Werkzeug; hat mir gerade geholfen, ein ärgerliches Problem zu lösen.Ich weiß, es ist eine ältere Antwort, aber danke! – SeanKilleen

2

Kasse „Beyond Compare“: http://www.scootersoftware.com/

Damit können Sie ganze Verzeichnisse von Dateien zu vergleichen, und es sieht aus wie es auch unter Linux läuft.

+1

diff -r vergleicht auch ganze Verzeichnisse von Dateien, aber es vergleicht nur die Dateien von einem Laufwerk mit den Dateien aus dem anderen Verzeichnis – reinierpost

+1

Beyond Compare ist ein großartiges Werkzeug, und ich benutze es die ganze Zeit, um Konflikte zu lösen. Es ist jedoch nicht das richtige Werkzeug für diesen Job, da es nur zwei Dateien gegeneinander oder gegen einen gemeinsamen Vorfahren vergleichen kann. – Superole

17

Vim kann dies bereits tun:

vim -d file1 file2 file3 

Aber Sie sind normalerweise auf 4-Dateien beschränkt. Sie können dies jedoch ändern, indem Sie eine einzelne Zeile in Vims Quelle ändern. Die Konstante DB_COUNT definiert die maximale Anzahl von diff ED-Dateien, und es ist in den Versionen 6.x und früher, oder etwa zwei Drittel des Weges structs.h in den Versionen 7.0 und höher in Richtung der Spitze diff.c definiert.

+0

vimdiff oder vim -d kann nur 4 Dateien gleichzeitig auf meinem Computer ausführen. weiß jemand wie man das umgehen kann? –

+0

Ich habe die Erwähnung in der Frage nicht bemerkt. Aktualisiert, um Anweisungen zur Änderung von Vim's Limit hinzuzufügen. –

+0

Hey, weißt du, wie man zu structs.h oder diff.c kommt? Ich kann den vim Quellcode nicht auf Win oder Linux finden. –

2

Wenn Sie mehrere Diffs basierend auf einer Datei ausführen, könnten Sie wahrscheinlich versuchen, ein Skript zu schreiben, das eine for-Schleife hat, um durch jedes Verzeichnis zu laufen und das diff auszuführen. Obwohl es nicht Seite an Seite wäre, könnte man sie zumindest schnell vergleichen. hoffe das hat geholfen.

+0

Ja, aber wenn ich zum Beispiel 3 Dateien vergleiche, würde ich wollen, dass sie alle diff gegen jede der anderen 2 Dateien, da diff macht diese Neuanordnung, um zu sehen, wo sie zusammenpassen. –

+0

Ich habe diesen Befehl gefunden, der bei Ihrem Skript helfen könnte. Er heißt diff3 und soll ein Dienstprogramm sein, um drei Dateien zu vergleichen. http://linux.about.com/library/cmd/blcmdl1_diff3.htm die Windows-Version finden Sie hier http://gnuwin32.sourceforge.net/packages/diffutils.htm –