Zum Inhalt springen

Zwei Texte vergleichen

Fügen Sie beide Versionen ein und sehen Sie genau, was sich geändert hat – nebeneinander, bis auf das einzelne Wort. Derselbe Algorithmus, den git verwendet – kein zeilenweises Raten, das zusammenbricht, sobald Sie eine Zeile hinzufügen.

  • Nie gespeichert
  • Keine Warteschlange, kein Warten
  • Ohne Anmeldung, ohne Wasserzeichen
Ansicht

So funktioniert’s

1

Beide Versionen einfügen

Das Original links, die neue Version rechts. Oder legen Sie zwei Dateien ab.

2

Unterschiede lesen

Hinzugefügte, entfernte und geänderte Zeilen werden markiert, und innerhalb einer geänderten Zeile werden genau die betroffenen Wörter hervorgehoben.

3

Ignorieren, was nicht zählt

Groß-/Kleinschreibung, Leerzeichen und Leerzeilen lassen sich jeweils ignorieren – und die Seite sagt Ihnen, wenn zwei Texte nur deshalb übereinstimmen.

Was als dieselbe Zeile gilt

Verglichen wird ein Schlüssel, nicht die Zeile selbst. Jede Zeile wird zu einem Schlüssel reduziert, je nachdem, welche Ignorieren-Optionen aktiv sind; der Diff läuft über die Schlüssel, und angezeigt wird immer Ihr Originaltext – „Groß-/Kleinschreibung ignorieren“ ändert also, welche Zeilen übereinstimmen, ohne ein einziges Zeichen des Angezeigten zu verändern. Es gibt zwei getrennte Optionen für Leerzeichen, und sie unterscheiden sich stärker, als ihre Beschriftungen vermuten lassen: Die eine entfernt Leerzeichen an den Enden einer Zeile, die andere fasst zuerst Folgen von Leerzeichen und Tabs zu einem einzigen Leerzeichen zusammen und entfernt dann die Enden. Keine von beiden entfernt Leerraum vollständig, und das Zusammenfassen erfasst nur echte Leerzeichen und Tabs – ein ideografisches oder geschütztes Leerzeichen mitten in einer Zeile bleibt also unangetastet und zählt weiterhin als Unterschied.

Das Ignorieren von Leerzeilen ist die Option mit einer Folge, die niemand erwähnt: Die Leerzeilen werden vor dem Vergleich entfernt, daher zählen die Zeilennummern neben dem Ergebnis nur die verbliebenen Zeilen und stimmen nicht mehr mit den Zeilennummern in Ihrer Datei überein. Ist die Option aus, stimmen sie genau überein. Die Hervorhebung auf Wortebene innerhalb einer geänderten Zeile folgt nur der Einstellung zur Groß-/Kleinschreibung – die Leerzeichen-Optionen wirken dort nicht, sodass Leerzeichenunterschiede in einer aus anderem Grund geänderten Zeile weiterhin als Änderungen markiert werden.

Das kopierbare Ergebnis ist in jeder Hinsicht, die fürs Lesen zählt, ein Unified Diff – die beiden Dateiköpfe, Minuszeilen, Pluszeilen, drei Kontextzeilen um jede Änderung – mit einer Ausnahme, die Sie kennen sollten, bevor Sie sich darauf verlassen. Seine Hunk-Markierungen enthalten keine Zeilenbereiche; es ist also für einen Fehlerbericht, einen Code-Review-Kommentar oder eine E-Mail gedacht, und die Befehle patch und git apply werden es ablehnen. Wenn Sie etwas zum Anwenden statt zum Lesen brauchen, erzeugen Sie es mit git.

Wenn Sie etwas anderes brauchen

Strukturierte Formate lassen sich zeilenweise schlecht vergleichen, und das Scheitern ist laut statt subtil: Zwei JSON-Dokumente, die sich nur in der Reihenfolge ihrer Schlüssel unterscheiden, oder zwei CSVs mit einer verschobenen Spalte ergeben eine Wand aus Änderungen, die nichts aussagt. Vergleichen Sie sie stattdessen mit etwas, das die Struktur versteht – sortieren Sie bei beiden JSON-Dateien zuerst die Schlüssel und vergleichen Sie dann die Ergebnisse, oder nutzen Sie daff, das CSV als Zeilen und Spalten vergleicht und Ihnen sagt, dass eine Spalte verschoben wurde, statt dass sich jede Zeile geändert hat.

Zwei Verzeichnisse oder zwei Stände in der Geschichte eines Repositorys sind eine Frage für git, nicht für diese Seite. Und bei Fließtext, dessen Absätze neu umbrochen wurden, ist eine zeilenbasierte Ansicht grundsätzlich die falsche Körnung – git diff --word-diff ignoriert, wo die Zeilenumbrüche lagen, und zeigt nur die Wörter, die sich bewegt haben. Das ist der Vergleich, den Sie eigentlich wollten, wenn ein Dokument neu umbrochen wurde.

Häufig gestellte Fragen

Werden meine Dokumente irgendwo gespeichert?

Nein. Es wird nichts gespeichert und keine Anfrage gesendet, und alles funktioniert auch ohne Netzverbindung weiter. Bei Text ist das wichtiger, als es aussieht: Was Menschen in ein Online-Tool einfügen, sind unveröffentlichte Texte, juristische Entwürfe, Studienarbeiten und interne Dokumente. Wenn Sie zwei Versionen eines Vertrags oder Entwurfs vergleichen, geht es genau darum.

Warum ist das besser als ein zeilenweiser Vergleich?

Weil ein zeilenweiser Durchlauf versagt, sobald sich etwas verschiebt. Fügen Sie oben in einer Datei eine Zeile hinzu, steht jede Zeile darunter in einer anderen Reihe, und ein naiver Vergleich meldet das ganze Dokument als geändert – was nutzlos ist. Hier kommt der Myers-Algorithmus zum Einsatz, der hinter git diff und diff(1) steckt und die kleinste Menge an Einfügungen und Löschungen findet, die den einen Text in den anderen überführt. Fügen Sie oben eine Zeile hinzu, meldet er eine hinzugefügte Zeile.

Zeigt es an, welche Wörter sich geändert haben, nicht nur welche Zeilen?

Ja. Wurde eine Zeile bearbeitet statt hinzugefügt oder entfernt, wird sie noch einmal Wort für Wort verglichen, und nur die tatsächlich geänderten Wörter werden hervorgehoben. Hat jemand in einem langen Absatz drei Wörter geändert, sehen Sie drei Wörter, keine Farbwand.

Was bewirken die „Ignorieren“-Optionen?

Sie ändern, was als dieselbe Zeile gilt. Groß-/Kleinschreibung, Leerzeichen oder Leerzeilen zu ignorieren, ist nützlich beim Vergleich von umformatiertem Code oder neu eingefügtem Text. Ein wichtiges Detail: Stimmen zwei Texte NUR deshalb überein, weil etwas ignoriert wird, sagt die Seite das ausdrücklich, statt sie als identisch zu melden – „identisch“ und „identisch, wenn man Groß-/Kleinschreibung ignoriert“ sind verschiedene Tatsachen, und wer sie verwechselt, liefert eine Datei aus, die er für unverändert hielt.

Kann ich das Ergebnis als Patch erhalten?

Ja – der Vergleich lässt sich als Unified Diff kopieren, im selben Format, das git und E-Mail-Patches verwenden, mit ein paar Kontextzeilen um jede Änderung. Das ist das Format für einen Fehlerbericht.

Gibt es ein Größenlimit?

Der verfügbare Arbeitsspeicher, keine feste Obergrenze. Der Vergleich zweier langer Dokumente ist schnell, weil identischer Anfang und identisches Ende zugeordnet und übersprungen werden, bevor die eigentliche Arbeit beginnt. Zwei Texte, die sich an Tausenden einzelner Stellen unterscheiden, werden mit einer Erklärung abgelehnt, statt den Tab einzufrieren – ein so großer Diff wäre ohnehin nicht lesbar.

Kann es Word- oder PDF-Dateien vergleichen?

Nicht direkt. Wandeln Sie sie zuerst in Text um – unsere Tools [PDF in Text](pdf-to-text) und [DOCX in TXT](docx-to-txt) machen genau das – und fügen Sie die Ergebnisse hier ein.

Gut zu wissen: Der Vergleich ist auf 8.000 Unterschiede begrenzt. Darüber wächst der Aufwand des Algorithmus so schnell, dass der Tab einfrieren würde – die Seite bricht daher ab und sagt es, statt hängen zu bleiben. Zwei wirklich unzusammenhängende Dokumente erreichen diese Grenze schnell. Zwei Versionen derselben Datei fast nie.

Dieses Tool auf Ihrer Website einbinden

Kostenlos für jeden Blog, jede Kursseite und jeden Hilfeartikel. Fügen Sie ein einziges Snippet ein, und Ihre Besucher können das Tool direkt auf Ihrer Seite nutzen.