Vergleich großer Dateien
Zwei große lokale Dateien zeilen- oder byteweise vergleichen – mit Optionen für Leerraum, Zeilenenden und Kodierung sowie einem Bericht zum Herunterladen.
Eingaben und Dateien bleiben im Browser
Dateien
Originaldatei
Beliebige lokale Datei. Sie bleibt auf diesem Gerät.
Geänderte Datei
Beliebige lokale Datei. Sie bleibt auf diesem Gerät.
Beide Dateien werden in einem Web Worker in Blöcken zu 1 MiB gelesen. Von jeder Zeile wird nur ein Hash behalten; der Text auf dem Bildschirm wird erneut aus den Dateien gelesen. Nichts wird hochgeladen oder gespeichert.
Wählen Sie eine Original- und eine geänderte Datei, um geänderte Zeilen oder Bytebereiche zu sehen.
Bericht
Bis zu 10.000.000 Zeilen pro Datei. Der Speicherbedarf liegt bei etwa 8 Bytes pro Zeile, plus bis zu 9 weiteren während der Zuordnung. Zeilen werden nach Anwendung der Leerraum- und Zeilenende-Regeln über Hashes zugeordnet. Die Tabelle kürzt eine Zeile auf 2.000 Zeichen; der Bericht schreibt ganze Zeilen bis 16 MiB. Der Binärmodus behält 100.000 Bereiche.
Auf dieser Seite
Der Vergleich großer Dateien vergleicht zwei lokale Dateien, die für ein Textfeld zu groß sind: Logs mit mehreren Gigabyte, CSV-Exporte, SQL-Dumps oder Builds. Textdateien werden zeilenweise verglichen, Binärdateien byteweise; das Ergebnis ist eine virtualisierte Tabelle der Änderungen und ein Bericht zum Herunterladen.
Detaillierte Funktionalität
Beide Dateien werden in einem Web Worker in Blöcken zu 1 MiB gelesen. Statt den Text zu behalten, wird jede Zeile zu einem 64-Bit-Hash, sodass eine Datei etwa 8 Bytes pro Zeile kostet. Die Optionen für Leerraum und Zeilenenden werden beim Hashen angewendet: exakt vergleichen, Leerraum am Zeilenende ignorieren, Änderungen der Leerraummenge ignorieren oder jeden Leerraum ignorieren; CRLF und LF können als dasselbe Zeilenende gelten. UTF-8 und UTF-16 werden als Unicode-Zeichen gehasht, sodass derselbe Text in beiden Kodierungen übereinstimmt. Ältere Kodierungen wie Windows-1251 oder Shift_JIS werden über ihre Bytes verglichen.
Die Zeilenzuordnung überspringt zuerst den gemeinsamen Anfang und das gemeinsame Ende, verankert sich dann an Zeilen, die in beiden Dateien genau einmal vorkommen (patience diff), und gleicht die Lücken mit dem Myers-Algorithmus ab. Eine Lücke, die zu lange dauern würde, wird als ein Ersetzungsblock angezeigt, und die Seite weist darauf hin. Nur die sichtbaren Zeilen werden erneut aus den Dateien gelesen, daher bleibt das Scrollen durch Millionen geänderter Zeilen leichtgewichtig.
Der Binärmodus vergleicht die Bytes blockweise und listet jeden abweichenden Bereich mit Offset, Länge und den ersten 16 Bytes beider Seiten auf; ein Größenunterschied wird zum letzten Bereich. Der Textbericht ist ein unified diff (.diff), der Binärbericht eine CSV. Beide werden direkt in die gewählte Datei gestreamt.
Praktische Beispiele
Zwei Logdateien: Ein Log mit 2 Millionen Zeilen gegen eine Kopie, in der 40 Zeilen die Stufe von INFO auf WARN geändert haben, zeigt 40 entfernte und 40 hinzugefügte Zeilen in getrennten Abschnitten mit je drei Kontextzeilen.
Windows- und Unix-Kopien: Eine CRLF-Datei gegen ihre LF-Kopie zeigt keine Unterschiede, solange die Zeilenende-Option aktiv ist; schalten Sie sie aus, und jede Zeile unterscheidet sich.
Neu formatierte Einrückung: Wählen Sie Änderungen der Menge ignorieren, und Zeilen, die sich nur in Leerzeichen oder Tabs zwischen Wörtern unterscheiden, gelten als gleich.
Firmware-Images: Im Binärmodus zeigen zwei Builds, die sich in einer Versionszeichenkette und einer Prüfsumme unterscheiden, zwei kurze Bereiche mit alten und neuen Bytes in hex.
So verwenden Sie dieses Tool
Dateien wählen
Ziehen Sie die Original- und die geänderte Datei hinein oder wählen Sie sie aus. Der Vergleich startet, sobald beide ausgewählt sind.
Optionen festlegen
Wählen Sie Erkennen, Textzeilen oder Binäre Bytes, die Kodierung, die Leerraum-Regel und ob Zeilenenden zählen. Mit Vergleichen führen Sie den Vergleich mit neuen Optionen erneut aus.
Änderungen lesen
Die Zusammenfassung zählt entfernte und hinzugefügte Zeilen sowie Abschnitte. Mit Vorherige Änderung und Nächste Änderung springen Sie zwischen Abschnitten; über Kontextzeilen zeigen Sie mehr oder weniger unveränderte Zeilen drumherum.
Bericht herunterladen
Laden Sie einen unified diff für Text oder eine CSV mit Bytebereichen für Binärdateien herunter.
Tipps und Best Practices
- Erkennen wechselt in den Binärmodus, wenn eine der Dateien in ihren ersten 8 KiB ein NUL-Byte enthält, außer sie beginnt mit einem UTF-16-BOM.
- Zeilen werden per Hash verglichen. Dass zwei verschiedene Zeilen denselben 64-Bit-Hash haben, ist äußerst unwahrscheinlich, und die Tabelle zeigt immer den echten Text.
- Umgestellte Textblöcke erscheinen als Entfernung und Hinzufügung, wie bei diff -u.
- Abbrechen stoppt den Worker sofort; die Dateien bleiben ausgewählt.
- Für einen schnellen Blick auf zwei kurze Ausschnitte hebt der Text-Vergleich geänderte Wörter innerhalb der Zeilen hervor.