Eingabe
Ausgabe

Was ist Text vergleichen?

Text vergleichen ist ein Online-Tool, das zwei Texte nimmt und genau zeigt, was sich zwischen ihnen geändert hat. Alte Version auf einer Seite einfügen, neue auf der anderen — die Unterschiede leuchten farbig auf. Grün für Hinzugefügtes, Rot für Entferntes.

Es funktioniert mit jedem reinen Text: Absätze, Codeausschnitte, Konfigurationsdateien, Vertragsklauseln, Übersetzungen. Übereinstimmende Zeilen bleiben neutral, das Auge geht direkt zu dem, was anders ist.

Nutze es, wenn du kein Desktop-Tool öffnen willst, aber trotzdem ein exaktes Ergebnis mit einem Klick brauchst. Keine Anmeldung, kein Upload, kein Protokoll deiner Vergleiche.

Was es tut

Compare Text nimmt zwei Textstücke und hebt Hinzugefügtes grün und Gelöschtes rot hervor. Die Arbeit erfolgt zeichenweise, sodass ein fehlendes Komma oder eine umbenannte Variable klar zu sehen ist. Die Engine ist Googles diff-match-patch-Bibliothek (Apache 2.0). Die allgemeine Technik heißt diff, und das zugrunde liegende Problem (die kleinste Menge an Änderungen zwischen zwei Zeichenketten zu finden) lässt sich auf das klassische Problem der längsten gemeinsamen Teilfolge zurückführen.

Die Engine verarbeitet natürliche Sprache und Code gleichermaßen gut — dieselbe Art von Ansatz, die hinter den Versionsverläufen von Dokumenteneditoren steckt. Wenn Sie statt Prosa strukturierte Daten vergleichen, parst unser JSON-Diff-Tool beide Seiten zuerst und ignoriert die Schlüsselreihenfolge: anderes Problem, anderes Werkzeug.

Kein Server. Dein Text wird per JavaScript mit der FileReader-API gelesen, verglichen und das Ergebnis in die Seite gezeichnet. Tab schließen, weg.

So vergleichst du zwei Texte

Drei Schritte. Der Diff aktualisiert sich beim Tippen, einen Vergleichen-Button gibt es nicht.

  1. 1

    Original einfügen

    In das linke Panel einfügen oder mit Hochladen eine .txt- oder .md-Datei laden. Beispiel setzt einen kurzen Beispieltext ein.

  2. 2

    Neue Version einfügen

    Rechts einfügen oder hochladen. Sobald beide Panels Inhalt haben, erscheinen Löschungen links rot und Hinzufügungen rechts grün.

  3. 3

    Änderungen prüfen

    Scrolle eine Seite, beide Panels bleiben synchron. Die Kopfzeile zeigt die Anzahl gefundener Änderungen. Kopieren oder Herunterladen sichert einen der Texte.

Wann es nützt

Markierte Änderungen im Vertrag erkennen

Fügen Sie V1 eines Lieferantenvertrags links ein und die markierte V2 rechts. Haftungs-, Zahlungs- und Kündigungsklauseln, die still und leise geändert wurden, fallen sofort auf. Hilfreich, wenn die Gegenseite eine saubere Kopie ohne aktivierte Änderungsverfolgung schickt.

Entwürfe und Lektorat prüfen

Vergleichen Sie Ihren Entwurf mit der Fassung der Lektorin oder Ihren Blogbeitrag vor und nach dem Lektorat. Jedes geänderte Wort ist sichtbar; Sie müssen den Text nicht komplett neu lesen, um den verschwundenen Satz zu finden.

Eine Übersetzungsrunde prüfen

Original auf der einen Seite, die Korrekturen der übersetzenden Person auf der anderen. Sie sehen, welche Wendungen umgeschrieben wurden und wo die Lektorin eine wörtliche Übersetzung zurückgewiesen hat. Spart einen zweiten kompletten Durchgang, wenn Sie der Lektorin vertrauen.

Konfigurationsdateien diffen

nginx.conf, systemd-Unit-Dateien, .env-Vorlagen. Zwei Versionen, nebeneinander, in Sekunden. Schneller, als diff im Terminal zu starten, wenn beide Dateien aus einem Chat-Verlauf bereits in der Zwischenablage liegen.

Snapshots von Logdateien vergleichen

Das Deploy-Log von gestern gegen das von heute, oder die Ausgabe desselben Jobs aus zwei CI-Läufen. Stabile Zeilen treten in den Hintergrund, das neue Fehlermuster sticht heraus. Bei mehreren Megabyte Log vorher mit grep auf den relevanten Ausschnitt eingrenzen.

Kurzreferenz Text-Diff

Grenzfälle, die dieses Tool am häufigsten zutage bringt, mit der Begründung dahinter.

ThemaWas dieses Tool macht
ZeilenendenLF, CRLF und CR sind unterschiedliche Zeichen. Eine Windows-Datei (CRLF) gegen eine Unix-Datei (LF) sieht so aus, als wäre jede Zeile anders. Normalisieren Sie beide Quellen auf LF oder entfernen Sie die Wagenrückläufe vor dem Vergleich.
Whitespace am ZeilenendeWird als echte Differenz angezeigt: Die Hervorhebung reicht über das sichtbare Zeichen hinaus. Praktisch, um nachgestellte Leerzeichen in YAML oder CSV zu erwischen, die Parser klammheimlich kaputtmachen.
Unicode-Normalisierungcafé mit vorzusammengesetztem é (U+00E9) ist ein Zeichen; die zerlegte Form e + Kombinierender Akzent (U+0301) sind zwei. Sie werden gleich dargestellt, im Diff aber unterschiedlich behandelt. Wenden Sie die Unicode-Normalisierungsform C mit String.prototype.normalize() an, damit sie übereinstimmen.
Granularität der ÜbereinstimmungIntern zeichenbasiert, mit einem Durchlauf zur semantischen Bereinigung, der Änderungen nach Möglichkeit an Wortgrenzen zusammenfasst. Deshalb wirken kurze gemeinsame Wörter manchmal wie Treffer in ansonsten unzusammenhängenden Texten.
Datei-KodierungHochgeladene Dateien werden über die FileReader-API als UTF-8 gelesen. Andere Kodierungen erscheinen als Zeichensalat. Vorher konvertieren oder aus einem Werkzeug einfügen, das die Datei bereits dekodiert hat.
Große EingabenBis zu einigen hundert KB unter einer Sekunde. 1 bis 2 MB sind merklich langsamer. Über 5 MB ist nicht der Diff-Algorithmus, sondern das Rendering der Engpass. Vor dem Einfügen eingrenzen.
Leere SeiteWenn ein Bereich leer ist, erscheint die andere Seite komplett als Hinzufügung (oder Löschung). Das ist korrektes Diff-Verhalten, kein Bug.
Identische EingabenWenn beide Seiten exakt übereinstimmen (einschließlich Whitespace, Zeilenenden und Unicode-Form), gibt es null Änderungen, und in den Kopfzeilen erscheinen keine Zähler.

Häufige Fragen

Speichert dieses Tool meinen Text?

Nein. Der gesamte Vergleich läuft in Ihrem Browser. Nichts wird an einen Server gesendet, geloggt oder gespeichert. Öffnen Sie die DevTools und schauen Sie in den Network-Tab: Beim Vergleichen gibt es keine ausgehenden Anfragen. Tab schließen und der Text ist weg.

Was ist der Unterschied zu einem JSON-Diff?

Ein Text-Diff vergleicht Zeichen in der Reihenfolge, in der sie stehen. Wenn Sie Schlüssel in JSON umsortieren oder Whitespace umformatieren, taucht das als Unterschied auf, obwohl die Daten identisch sind. Wenn Sie speziell JSON vergleichen, nehmen Sie das Tool Compare JSON: Es parst beide Seiten zuerst und beachtet die Reihenfolge. Für Prosa, Configs, Plain-Code oder alles andere, was keine strukturierten Daten sind, ist Text-Diff das Richtige.

Behandelt es Windows- und Unix-Zeilenenden (CRLF vs. LF)?

Es vergleicht sie, wie sie sind. Eine Windows-Datei (CRLF) gegen eine Unix-Datei (LF) sieht so aus, als wäre jede Zeile anders, auch wenn der Inhalt übereinstimmt. Das ist der Diff, der korrekt arbeitet: Die Eingaben sind tatsächlich unterschiedlich. Zur Behebung normalisieren Sie die Zeilenenden in beiden Quellen oder entfernen die Wagenrückläufe vor dem Einfügen.

Gibt es eine Größenbegrenzung?

Die praktische Grenze ist der Speicher Ihres Geräts. Texte bis zu einigen hundert KB werden in deutlich unter einer Sekunde verglichen. Ab 1 MB merkt der Browser es, vor allem weil das Rendern der Hervorhebungen aufwendig wird. Bei riesigen Logdateien oder ganzen Buchmanuskripten zuerst auf den relevanten Abschnitt eingrenzen.

Warum sieht der Diff manchmal zerstückelt aus?

Der zeichenbasierte Diff richtet kurze gemeinsame Teilzeichenketten aus (der, die, einzelne Buchstaben, Satzzeichen), wo er kann. Ein Durchlauf zur semantischen Bereinigung gruppiert das nach Möglichkeit zu Wortgrenzen, aber zwei zusammenhanglose Absätze ergeben weiterhin ein zerstückeltes Ergebnis. Der Algorithmus kann nicht wissen, dass zwei Texte gar nicht zum Vergleichen gedacht waren.

Kann ich Dateien in unterschiedlichen Kodierungen vergleichen?

Über den Upload-Button geladene Dateien werden als UTF-8 gelesen (der Standard von FileReader). Dateien in anderen Kodierungen (Latin-1, Shift-JIS, Windows-1252) erscheinen als Zeichensalat; konvertieren Sie sie vorher in UTF-8. Bei Text, der schon in der Zwischenablage liegt, hat das Betriebssystem die Kodierung vor dem Einfügen aufgelöst, das funktioniert in der Regel direkt.