Text Diff / Compare
Compare two texts side by side and highlight the differences.
Geprüft von Aygul Dovletova · Zuletzt geprüft
So wird das Text-Diff-Tool verwendet
- Füge die Originalversion deines Textes in das linke Panel ein. Das kann ein Absatz, eine E-Mail, eine Übersetzungsquelle oder eine beliebige Prosapassage sein.
- Füge die bearbeitete Version in das rechte Panel ein.
- Klicke auf Vergleichen. Die Diff-Ansicht rendert darunter und zeigt jede geänderte Zeile mit hinzugefügtem Inhalt in Grün und entferntem Inhalt in Rot hervorgehoben.
- Scanne auf unveränderte Zeilen in Grau zwischen den Änderungsmarkierungen - das ist dein Kontext, die Prosa, über die beide Autoren einig waren.
- Verwende Tauschen, um den Diff aus der entgegengesetzten Richtung zu sehen, was zeigt, ob eine Bearbeitung eine Hinzufügung oder eine Rückgängigmachung war.
- Verwende Löschen, um beide Panels zurückzusetzen, bevor du einen frischen Vergleich startest.
Was dieses Tool macht
Der Diff läuft als zeilenbasierter Vergleich mit Schwerpunkt auf kurzen, menschenlesbaren Passagen: Release-Notizen, Blog-Bearbeitungen, Übersetzungsüberprüfungen und Chat-Threads. Im Hintergrund verwendet es eine Longest-Common-Subsequence-Berechnung, um übereinstimmende Zeilen zwischen den beiden Eingaben auszurichten, dann markiert alles andere als Einfügungen oder Löschungen. Das Rendering erfolgt durch das Erstellen von DOM-Textknoten statt innerHTML, was bedeutet, dass spitze Klammern, Ampersands und andere HTML-ähnliche Zeichen in deiner Prosa verbatim gerendert werden, anstatt als Markup geparst zu werden. Nichts am Vergleich berührt das Netzwerk: Es gibt kein fetch, keinen Telemetrie-Beacon, der die Eingabe trägt, und die Vergleich-Schaltfläche löst einen einzigen synchronen Funktionsaufruf innerhalb des bestehenden Seitenkontexts aus.
Wann du danach greifen würdest
- Prüfen, was ein Lektor tatsächlich am Entwurf eines Blog-Beitrags geändert hat, bevor du ihre Version akzeptierst.
- Verifizieren, dass zwei Übersetzer linguistisch äquivalente Ausgaben erzeugt haben, indem man die englischen Rückübersetzungen diffst.
- Nutzungsbedingungsänderungen zwischen Lieferantenvertragsrevisionen überprüfen und eingefügte Klauseln für die Rechtsabteilung markieren.
- Zwei Versionen einer KI-generierten Antwort vergleichen, um zu sehen, wo ein Prompt-Tweaking die Formulierung verschoben hat.
- Slack- oder Discord-Nachrichten aus zwei Zeitstempeln einfügen, um zu sehen, was ein Nachrichtenautor nachträglich bearbeitet hat.
- Bestätigen, dass eine Grammatik- oder Ton-Überarbeitung keine faktische Behauptung aus dem Originalabsatz still gestrichen hat.
Häufige Fallstricke und Randfälle
- Zeilenumbruch-sensitiver Vergleich. Das Tool vergleicht ganze Zeilen. Wenn der Lektor Absätze bei einer anderen Spaltenbreite umgebrochen hat, erscheint jede Zeile als geändert, obwohl die Wörter dieselben sind. Einen Absatz pro Zeile einfügen oder beide Eingaben erst durch einen Zeilen-Abflachungsschritt laufen lassen.
- Typografische Anführungszeichen und Gedankenstriche. Das Einfügen aus Word, Google Docs oder einem CMS führt oft U+2018, U+2019, U+201C, U+201D oder U+2014 ein, wo früher ASCII-Zeichen waren. Diese sehen auf dem Bildschirm identisch aus, sind aber verschiedene Bytes, sodass sie als Änderungen erscheinen. Ein Unsichtbares-Zeichen-Detektor (ebenfalls auf dieser Seite) enthüllt sie.
- Nicht-trennbare Leerzeichen. U+00A0 sieht wie ein normales Leerzeichen aus, ist aber verschieden von U+0020 und lässt eine Zeile gegen eine sonst übereinstimmende Zeile diffsen.
- Nachfolgende Leerzeichen. Leerzeichen oder Tabulatoren am Ende einer Zeile zählen als Unterschiede. Wenn sie uninteressant sind, sie in einem Texteditor oder mit dem Leerzeichen-Entferner vor dem Diffing entfernen.
- Identische Eingaben mit nachgestelltem Zeilenumbruch-Mismatch. Zwei Einfügungen, die sich nur dadurch unterscheiden, ob sie mit einem Zeilenumbruch enden, zeigen eine Änderung in einer Zeile am unteren Ende.
Was "Text-Diff" tatsächlich bedeutet
Text-Diffing hat eine lange Abstammung, die mit Hunt und McIlroys Papier von 1976 beginnt, das den Algorithmus beschreibt, der zu Unix diff wurde, gefolgt von Eugene Myers' Papier von 1986, das den O(ND)-Editierskript-Algorithmus einführte, den moderne Tools verwenden. Die zugrundeliegende Mathematik ist dynamisches Programmieren über eine Folge von Tokens - Zeilen, Wörter oder Zeichen - auf der Suche nach der längsten gemeinsamen Teilfolge (LCS), die den unveränderten Anteil zwischen zwei Eingaben maximiert. RFC 6902 (JSON Patch) und das Unified-Diff-Format, das von GNU diff und Git verwendet wird, entstammen beide dieser Tradition. Wort- und Zeichenebene-Diffs verwenden dieselbe Mathematik auf einer feineren Granularität, weshalb Editoren wie VS Code inline Rot und Grün innerhalb einer einzelnen geänderten Zeile anzeigen können.
Vergleich mit Alternativen
diff -u auf der Kommandozeile bleibt das Referenz-Tool für dateibasierten Textvergleich. wdiff erzeugt wortebene Diffs, die für Prosaleser freundlicher sind als der zeilenbasierte Standard. Google Docs, Notion und Microsoft Word haben integrierte Änderungsverfolgungs-Ansichten, die weitaus ergonomischer sind, wenn Autor und Prüfer innerhalb desselben Dokuments zusammenarbeiten. Diffchecker.com und mehrere andere Online-Tools bieten Nebeneinander-Layouts mit inline Wortebene-Hervorhebung. Dieses Web-Tool verwenden, wenn die Eingaben kurze Passagen sind, die irgendwoher eingefügt wurden (ein Chat, eine E-Mail, eine Modellantwort), und man einen schnellen, privaten, Zero-Install-Vergleich möchte. Für lange Dokumente mit umfangreicher Formatierung dient ein Word-ähnlicher Editor mit Änderungsverfolgung besser; für versions-kontrollierten Inhalt ist Git die richtige Antwort.
Häufig gestellte Fragen
Wie unterscheidet sich das vom Diff-Checker-Tool auf dieser Seite?
Die Diff-Checker-Seite ist für den Datei-zu-Datei-Code-Vergleich optimiert: Sie erzeugt eine Unified-Diff-Ausgabe, die für <code>git apply</code> und <code>patch</code> geeignet ist, mit dualen Zeilennummern-Leisten und einer Monospace-Darstellung. Diese Text-Diff-Seite ist für kürzere Prosa-Passagen abgestimmt - E-Mails, Blog-Absätze, Übersetzungsausschnitte - wo du eine schnelle, lesbare Änderungsansicht statt eines maschinenkonsumierbarens Patches möchtest. Die zugrundeliegende LCS-Mathematik ist ähnlich, aber die UX-Entscheidungen unterscheiden sich.
Warum zeigen zwei Zeilen, die identisch aussehen, als geändert?
Die häufigsten Schuldigen sind unsichtbare Unicode-Zeichen: Nullbreites Leerzeichen U+200B, Byte-Order-Mark U+FEFF, Nicht-trennbares Leerzeichen U+00A0 oder Weiches Trennzeichen U+00AD. Die zweithäufigste ist eine Smart-Quote-Ersetzung durch ein CMS, das gerade Anführungszeichen in geschwungene umwandelt. Die verdächtige Zeile in den Unsichtbares-Zeichen-Detektor auf dieser Seite einfügen, um jeden versteckten Code-Punkt mit seinem Namen und seiner Position zu sehen.
Wird der verglichene Text gespeichert oder hochgeladen?
Nein. Der Vergleich läuft als einzelner JavaScript-Funktionsaufruf in deinem Browser-Tab. Es gibt kein POST zu irgendeinem Server, kein Service-Worker-Caching deiner Eingaben und kein Analytics-Ereignis, das den Text trägt. Das Schließen des Tabs gibt die Zeichenketten für die Garbage-Collection frei. Wenn du es überprüfen möchtest, öffne DevTools und beobachte den Netzwerk-Tab, während du auf Vergleichen klickst - nichts erscheint.
Kann ich JSON oder YAML mit diesem Tool diffing?
Du kannst, aber ein strukturelles Diff-Tool liefert normalerweise bessere Ergebnisse für Datenformate. Dieses Tool vergleicht Zeilen wie-sie-sind, sodass das Umordnen von Schlüsseln in einem JSON-Objekt als vollständige Neufassung jedes Objekts angezeigt wird, obwohl der semantische Inhalt identisch ist. Tools wie jd, jsondiff oder json-diff vergleichen die geparsten Strukturen und berichten Schlüssel-Level-Änderungen, die reihenfolge-unabhängig sind, was fast immer das ist, was man beim Überprüfen von API-Payload-Änderungen möchte.
Warum sollte ich das statt Änderungen verfolgen in meinem Textverarbeitungsprogramm verwenden?
Änderungen verfolgen ist innerhalb eines lebendigen Dokuments überlegen, das du und ein Mitarbeiter teilen. Dieses Tool ist für den Fall gedacht, dass du zwei Versionen als eingefügten Text erhalten hast - eine Chat-Nachricht, eine Kopie aus einem E-Mail-Thread, einen Code-Review-Kommentar - und du musst das Delta sehen, ohne eine der Quellanwendungen zu öffnen. Es ist auch nützlich, wenn die Quelle überhaupt kein Dokument ist: zwei LLM-Ausgaben, zwei Versionen einer Log-Nachricht oder zwei Konfigurationsdateien.
Wie entscheidet der LCS-Algorithmus, welche Zeilen gleich sind?
Die längste gemeinsame Teilfolge arbeitet auf einer Editiergraph- Darstellung: Sie findet die längste Folge von Zeilen, die in beiden Eingaben in derselben relativen Reihenfolge erscheint. Zeilen, die nicht in dieser Teilfolge sind, werden als Einfügungen oder Löschungen gemeldet. Der Algorithmus ist gegenüber dem Inhalt der Zeilen agnostisch - er vergleicht sie auf Byte-Gleichheit - sodass zwei Zeilen, die sich durch ein einzelnes Zeichen unterscheiden, als unverwandt behandelt werden und nicht als Änderung.
Was ist mit Emoji und nicht-lateinischen Schriften?
Der Vergleich ist byte-exakt, sodass zwei Zeilen, die zu denselben UTF-8-Bytes kodieren, gleich sind, unabhängig von der Schrift. Arabische, chinesische, Hindi- und emoji-schwere Texte vergleichen alle korrekt. Das Rendering verwendet die Standard-Monospace-Schrift deines Browsers, die möglicherweise keine Glyphen für jede Schrift hat; in diesem Fall erscheint das Unicode-Ersetzungsfeld, aber der Diff ist mathematisch noch korrekt.
Kann ich einen Diff auf Wortebene statt auf Zeilenebene sehen?
Dieses Tool berichtet auf Zeilenebene. Wenn du Wortebene-Unterschiede innerhalb eines Absatzes möchtest, entweder die Prosa vorab aufteilen, sodass ein Satz pro Zeile steht, bevor du diffst, oder ein dediziertes Wortebene-Tool verwenden. GNU wdiff und das npm-Paket diff bieten Wort- und Zeichengranularität, wenn du etwas Skriptbares benötigst.
Wie groß kann jede Seite sein?
Komfortabel bis zu einigen tausend Zeilen pro Seite; darüber hinaus kann der Browser kurz einfrieren, während der Editiergraph durchlaufen wird, weil LCS im schlimmsten Fall quadratisch ist. Für buchlangsange Manuskripte oder riesige Logs ein Kommandozeilen-Tool in C oder Rust verwenden - GNU diff verarbeitet mehrstufige Megabyte-Eingaben ohne Probleme.
Normalisiert das Tool Zeilenenden zwischen den beiden Eingaben?
Nein. Wenn eine Seite Windows-CRLF und die andere Unix-LF hat, erscheint jede Zeile als geändert, weil das nachgestellte \r Teil der Zeile ist. Beide Eingaben durch einen Normalisierer laufen lassen, wenn du sie aus gemischten Quellen gezogen hast. Unter macOS und Linux erledigt <code>tr -d \r</code> die Arbeit; unter Windows ist dos2unix der Standardfix.
Mehr Text Tools
Binary to Text
Convert text to binary and binary back to text.
Open toolCase Converter
Convert text between UPPER, lower, Title, Sentence, camelCase, snake_case and more.
Open toolCharacter Counter
Count characters with platform-specific limits for Twitter, Instagram and more.
Open toolEmoji Picker & Search
Search and copy emojis by name or category.
Open toolFancy Text Generator
Generate stylish text with bubbles, squares, upside down and more for social media.
Open toolFind & Replace
Find and replace text with regex support and case-sensitive options.
Open tool