ToolActToolAct

Textvergleichstool

Original-TextOLD
1
Neuer TextNEW
1
0 Zeilen hinzugefügt0 Zeilen gelöscht
UTF-8

Was ist Text-Vergleich?

Text Diff vergleicht zwei Textfassungen und markiert, welche Zeilen oder Abschnitte hinzugefügt, entfernt oder unverändert geblieben sind. Damit lassen sich Codeänderungen, Konfigurationsdateien, Übersetzungen, Vertragsentwürfe, Markdown-Dokumente, Prompt-Versionen und Logauszüge schneller prüfen, ohne beide Texte manuell nebeneinander zu lesen. Das Werkzeug ist besonders hilfreich, wenn kleine Änderungen in langen Inhalten versteckt sind oder wenn eine Änderung versehentlich Formatierung, Leerzeichen oder Reihenfolge beeinflusst hat. Ein Diff erklärt allerdings nicht, ob eine Änderung fachlich richtig ist; es zeigt nur präzise, wo sich die Texte unterscheiden, damit die eigentliche Bewertung leichter fällt. Bei veröffentlichten oder mehrsprachigen Inhalten sollte das Ergebnis wegen Sprache, Zeichensatz, Kontext und Sonderfällen kurz gegengelesen werden.

Anleitung

Anleitung

  1. Originaltext in das linke Eingabefeld einfügen.
  2. Geänderten Text in das rechte Eingabefeld einfügen.
  3. Das System berechnet und markiert Unterschiede automatisch; die Statusleiste zeigt die Anzahl hinzugefügter und entfernter Zeilen.

Prüftipps

  • Zeilenenden und Leerzeichen vor dem Vergleich normalisieren, wenn die tatsächliche Änderung im Inhalt liegt und nicht in der Formatierung.
  • Bei Code oder Rechtstexten markierte Änderungen manuell prüfen; automatische Diff-Vergleiche zeigen Unterschiede, bewerten aber nicht Absicht oder Korrektheit.

Anwendungsfälle

Zwei Textversionen zeilenweise vergleichenFügen Sie Original- und geänderten Text in nebeneinander stehende Editoren ein, und das Werkzeug berechnet einen Zeilendiff mit einem dynamischen-Programmier-Editierabstand-Ansatz. Hinzugefügte Zeilen werden rechts hervorgehoben, entfernte Zeilen links. Die Statuszeile meldet die Anzahl hinzugefügter und entfernter Zeilen, sodass Prüfer den Umfang der Änderung auf einen Blick erkennen.
Kleine Änderungen ohne vollständigen Git-Workflow prüfenDie Alt- und Neu-Panels enthalten Zeilennummern, Löschen- und Einfügen-Aktionen sowie Statuszähler für hinzugefügte und entfernte Zeilen. Das ist nützlich zum Vergleichen von Übersetzungen, Konfigurationsausschnitten, generiertem Text oder kopierten Notizen außerhalb eines Repositorys. Schnelle Diffs im Browser halten Prüfer beim Inhalt statt bei der Commit-Historie.
Strukturelle Änderungen schnell erkennenDa der Vergleich auf Zeilenebene arbeitet, betont er eingefügte und gelöschte Zeilen rather than zeichenbasierte Tippfehler. Das macht ihn am besten für Absätze, Listen, JSON-Fragmente, Dokumentationsabschnitte und mehrzeilige Ausgaben. Für zeichenbasierte Korrektur lesen sollten Sie das Ergebnis mit einem separaten zeichenbasierten Diff oder einer Rechtschreibprüfung ergänzen.
Prompt- und Konfigurationsänderungen vor dem Merge prüfenFügen Sie den vorherigen und den neuen Prompt in die beiden Panels ein, um genau zu sehen, welche Zeilen hinzugefügt, entfernt oder umsortiert wurden. Das ist schneller als den gesamten Text erneut zu lesen, wenn nur eine Temperatur, eine Systemnachricht oder ein Anweisungsblock zwischen den Versionen geändert wurde. Die Zeilenansicht erfasst versehentliche Abschnittsverschiebungen, die eine Wortanzahl-Vergleichung übersehen würde.
Diffs des Myers-Algorithmus und LCS prüfenUnter der Haube führt die Diff-Engine den Myers-O(ND)-Algorithmus auf der Longest Common Subsequence aus, um ein Editier-Skript zu erzeugen, und wendet dann eine semantische Bereinigung an, sodass Wortgrenzen-Verschiebungen (z. B. ein Satz, der über zwei Zeilen gebrochen ist) zu einer einzigen geänderten Zeile statt zu zwei benachbarten Rot/Grün-Blöcken zusammengefasst werden. Das Ergebnis liest sich weiterhin als normaler Zeilendiff, aber die LCS-Basis bedeutet, dass die kleinstmögliche Menge von Änderungen in der nebeneinander stehenden Ansicht angezeigt wird.

Technisches Prinzip

Der zeilenweise Vergleich basiert auf dem Problem der längsten gemeinsamen Teilsequenz (LCS): Gegeben zwei Zeilenfolgen A und B, finde die längste Folge, die in beiden in derselben relativen Reihenfolge vorkommt. Alles, was nicht zur LCS gehört, ist entweder eine Einführung (in B vorhanden, aber nicht in A) oder eine Löschung (in A vorhanden, aber nicht in B) – genau die Menge der roten und grünen Zeilen in der nebeneinander stehenden Ansicht. Die naive LCS-Dynamic-Programming-Tabelle läuft in O(M * N) Zeit und Speicher, wobei M und N die Zeilenanzahlen der beiden Eingaben sind. In der Praxis verwendet die Diff-Engine den Myers-Diff-Algorithmus (Eugene Myers, 1986), der dasselbe Problem in O((M + N) * D) Zeit löst, wobei D der Editierabstand zwischen den beiden Dateien ist. Für zwei Dateien, die weitgehend identisch sind, ist D klein und Myers dramatisch schneller als die vollständige DP-Tabelle; Gits Standard-Diff-Backend, GitHub's Web-Diff-Ansicht und die meisten IDE-Diff-Panels verwenden Myers oder einen seiner Nachfolger (Patience Diff, Histogramm Diff) aus genau diesem Grund. Patience Diff richtet sich zusätzlich zuerst an einzigartig vorkommenden Zeilen aus, was lesbarere Blöcke ergibt, wenn Code-Blöcke verschoben wurden. Die Ausgabe ist eine Folge von Gleich-/Einfüge-/Lösch-Operationen, die als Unified Diff in CLI-Tools dargestellt werden (mit @@ -m,n +p,q @@ Block-Header und einem einzelnen +/- Präfix pro Zeile) oder als nebeneinander stehende farbige Zeilen in einer Web-Oberfläche. Zeichen- oder wortweise Vergleiche verwenden denselben Algorithmus auf einer feineren Segmentierung, oft gepaart mit der Levenshtein-Distanz (Einfüge- + Lösch- + Ersetzungskosten), wenn Ersetzungen als einzelne Operation gezählt werden sollen. Die diff-match-patch-Bibliothek von Neil Fraser ist die gebräuchliche Referenzimplementierung für browserseitige zeichenweise Vergleiche.

  • LCS-Basis: Die längste gemeinsame Teilsequenz der beiden Zeilenarrays definiert die unveränderten Zeilen; alles andere ist eine Einfügung oder Löschung
  • Myers Diff (1986): O((M + N) * D) Zeit, wobei D der Editierabstand ist; Standard-Backend in Git, GitHub und den meisten IDE-Diff-Ansichten
  • Naiver DP: O(M * N) Zeit und Speicher – geeignet für kleine Eingaben, aber quadratischer Speicherbedarf macht ihn für große Dateien unpraktikabel
  • Patience Diff: Richtet sich zuerst an einzigartig vorkommenden Zeilen aus; erzeugt sauberere Blöcke für verschobene oder umsortierte Abschnitte
  • Ausgabeformate: Unified Diff mit @@ -m,n +p,q @@ Block-Headern für CLI; nebeneinander stehende farbige Zeilen für Web-Oberflächen
  • Granularität: Zeilen-/Wort-/Zeichenvergleiche wenden denselben Algorithmus auf eine unterschiedliche Segmentierung der Eingabe an
  • Levenshtein-Distanz: Zählt Einfügungen + Löschungen + Ersetzungen; diff-match-patch ist die Referenz-Bibliothek für den Web-Einsatz

Beispiele

Eine Wortänderung in einem Absatz erkennen

Original:
  The server starts on port 3000 by default.

Geändert:
  The server starts on port 8080 by default.

Ergebnis: 1 Zeile geändert (3000 -> 8080)

Zwei Versionen eines Konfigurationsblocks vergleichen

Original:                       Geändert:
  timeout: 30                     timeout: 60
  retries: 3                      retries: 3
  debug: false                    debug: true
                                  log_level: info

Ergebnis: 2 Zeilen hinzugefügt, 2 Zeilen entfernt

Release Notes vor und nach einem Release vergleichen

Entfernt (rot):
  - Fixed login redirect on Safari 16

Hinzugefügt (grün):
  - Fixed login redirect on Safari 16 and 17
  - Added dark mode preference sync

Ergebnis: 2 Zeilen hinzugefügt, 1 Zeile entfernt

Umsortierte JSON-Schlüssel erkennen

Original:                       Geändert:
  { "name": "alice",              { "id": 1,
    "id": 1,                        "name": "alice",
    "role": "admin" }               "role": "admin" }

Ergebnis: 2 Zeilen geändert (Schlüsselreihenfolge unterschiedlich, Werte identisch)

FAQ

Welche Art von Diff wird angezeigt?

Ein zeilenweises Diff. Die Seite zeigt zwei nebeneinanderliegende Bereiche: links rot hervorgehobene entfernte Zeilen, rechts grün hervorgehobene hinzugefügte Zeilen. Zeilennummern helfen beim Lokalisieren der Änderungen. Die Statusleiste zeigt die Anzahl der hinzugefügten und entfernten Zeilen.

Welcher Diff-Algorithmus wird verwendet?

Die Seite berechnet das Edit-Skript auf Zeilenebene mit einem Longest-Common-Subsequence-Algorithmus (LCS). Bei üblichen Dokumentgrößen läuft das in Echtzeit, während du tippst. Der Algorithmus findet die kürzeste Folge aus Einfügungen und Löschungen, um den linken Text in den rechten zu überführen.

Warum sieht das Diff anders aus als 'git diff'?

Git nutzt eine eigene Diff-Implementierung mit konfigurierbaren Algorithmen. Diese Seite verwendet ein JavaScript-LCS-basiertes Diff, das vollständig im Browser läuft. Ausgabeformat und Hunk-Grenzen können sich von 'git diff' geringfügig unterscheiden, die zugrunde liegende Änderungserkennung ist beim zeilenweisen Vergleich aber korrekt.

Kann ich nur innerhalb eines Absatzes oder Satzes diffen?

Ja – füge jede Version in eine Seite ein. Die Seite bietet zusätzlich eine zeichenweise Hervorhebung innerhalb geänderter Zeilen, weshalb 'rename foo to bar' als Inline-Ersetzung erscheint statt als zwei unabhängige Änderungen.

Werden Whitespaces ignoriert?

Nein. Das Diff berücksichtigt Whitespaces standardmäßig. Whitespace-Unterschiede (nachgestellte Leerzeichen, zusätzliche Leerzeilen, unterschiedliche Zeilenenden) werden als Änderungen angezeigt.

Kann ich JSON oder XML strukturell diffen?

Reines Textdiff arbeitet zeilenbasiert. Um JSON nach Schlüssel zu diffen (Schlüssel 'a' wandert von Position 1 auf 3 mit gleichem Wert = keine Änderung), nutze ein JSON-fähiges Diff-Tool (jsondiffpatch, json-diff). Diese Seite ist für textuelle Vergleiche gedacht.

Wird mein Text hochgeladen?

Nein. Das Diff läuft in deinem Browser. Beide Eingaben werden lokal verarbeitet und nicht übertragen.