Text vergleichen & Diff
Vergleichen Sie zwei Texte sofort im Browser. Nebeneinander-Ansicht mit Wort-Markierung, Unified-Diff-Export, Ignorieren von Groß/Klein, Leerzeichen, Leerzeilen. 100 % im Browser — kein Upload.
Ignorier-Optionen
Was ist Text Diff?
Text Diff ist ein strukturierter Vergleich zweier Textdokumente, der die kleinste Menge an Einfügungen und Löschungen findet, die das eine in das andere überführt. Die Ausgabe macht die Änderung sichtbar: grün für hinzugefügte Zeilen, rot für entfernte, nebeneinander oder im Unified-Patch-Format (das `---/+++/@@`-Format, das von `git`, GitHub und dem Unix-`patch`-Befehl verwendet wird).
Unter der Haube ist jedes moderne Diff ein Longest-Common-Subsequence-Algorithmus (LCS). Eugene Myers' 1986er O((N+M)D)-Paper ist die kanonische effiziente Implementierung; klassisches dynamisches Programmieren (hier verwendet, mit Trimming gemeinsamer Präfixe/Suffixe) ist einfacher und funktioniert perfekt für typische Web-Eingaben. Nachdem die Zeilen ausgerichtet sind, werden benachbarte Entfernen+Hinzufügen-Paare durch einen zweiten Token-Level-LCS geschickt, sodass der Renderer nur die Wörter hervorheben kann, die sich innerhalb einer Zeile tatsächlich geändert haben — was Prüfer Intra-Line- oder Word-Level-Diff nennen.
Warum nicht einfach Zeichen für Zeichen vergleichen? Weil Änderungen selten flach sind: Eine Zeile in der Mitte einer 200-Zeilen-Datei einzufügen verschiebt jede Zeile darunter. Ein naiver `===` würde alle 199 Zeilen als unterschiedlich melden. LCS sagt Ihnen die Wahrheit: eine Zeile hinzugefügt, 199 unverändert.
Dieses Tool führt den gesamten Vergleich in Ihrem Browser durch. Kein Upload, keine temporäre Datei, kein Log. Sicher für proprietären Code, geänderte Verträge, private Logs — alles, was Sie nicht in einen Drittserver einfügen wollen. Müssen Sie stattdessen JSON diffen? Verwenden Sie das strukturelle JSON Diff, damit Schlüsselreihenfolge und Leerzeichen kein Rauschen mehr sind. Zwei Konfigurationen in YAML oder CSV vergleichen? Konvertieren Sie zuerst mit YAML to JSON oder JSON to CSV, dann diffen Sie mit dem passenden Tool für das Format.
// Two strings that look 'mostly the same' but a naïve check disagrees const a = 'hello world'; const b = 'hello, world!'; // Character equality a === b; // false — but only 3 characters actually changed. // LCS-style diff (this tool, at line + word granularity) // → 1 line modified, inline highlight: 'hello[, ]world[!]' // → unified patch: // --- original // +++ modified // @@ -1 +1 @@ // -hello world // +hello, world!
Hauptfunktionen
Side-by-Side + Unified
Wechseln Sie zwischen der visuellen Zwei-Spalten-Ansicht (für menschliche Prüfung) und dem kanonischen Unified-Diff-Patch-Format (für `git apply`, Code-Review-Tools, Bugreports).
Inline-Wort-Hervorhebung
Wenn zwei Zeilen als geändert gepaart werden, tragen nur die geänderten Tokens einen farbigen Hintergrund. Ihr Auge findet die Bearbeitung sofort, statt 80 Zeichen abzuscannen.
Groß-/Klein- / Leerzeichen- / Leerzeilen-Ignorieren
Vier unabhängige Schalter: Groß-/Kleinschreibung, alle Leerzeichen, nur Trailing-Whitespace, Leerzeilen. Repliziert `git diff -i -w -b` mit wenigen Klicks.
Unified-Diff-Export
Kopieren Sie einen sauberen `---/+++/@@`-Patch mit drei Kontextzeilen. Fällt direkt in einen PR-Kommentar, einen Bugreport oder `patch -p1`.
100 % browserbasiert
Eingaben verlassen niemals Ihr Gerät. Kein Upload, keine Textanalyse. Funktioniert offline, sobald die Seite geladen ist. Sicher für proprietären Code und vertrauliche Prosa.
Unicode- + RTL-aware
Teilt Tokens an Unicode-Wortgrenzen. Arabische, hebräische, CJK-Inhalte vergleichen sauber; Zeilenend-Varianten (CRLF, LF, CR) werden alle normalisiert.
Beispiele
Code-Review — eine Variable umbenannt
function getUser(id) {
const u = db.users.find(x => x.id === id);
return u;
} function getUser(userId) {
const u = db.users.find(x => x.id === userId);
return u;
} Die Nebeneinander-Ansicht hebt jede Zeile hervor, die die Umbenennung enthält, während der Inline-Wort-Diff unveränderte Tokens abdunkelt — Prüfer erkennen sofort, welcher Bezeichner sich geändert hat.
Vertragsänderung — eine Klausel hinzugefügt
1. The service is provided as-is. 2. Either party may terminate with 30 days notice. 3. Disputes are resolved in California courts.
1. The service is provided as-is. 2. Either party may terminate with 30 days notice. 2a. Termination notice must be in writing. 3. Disputes are resolved in California courts.
Eine einzige eingefügte Klausel (Zeile 2a) ist der einzige Unterschied. Der umgebende Kontext bleibt sauber — nützlich für Vertragsänderungen oder Richtliniendokumente.
Log-Analyse — Antwortzeit verändert
GET /api/users 200 14ms POST /api/orders 201 88ms GET /api/orders/42 200 21ms
GET /api/users 200 14ms POST /api/orders 201 4200ms GET /api/orders/42 500 21ms
Zwei Zeilen ändern sich. Die Inline-Markierung zeigt 88ms → 4200ms Latenzdrift und 200 → 500 Statuscode. Standardvorgehen für eine Incident-Timeline.
Trailing Whitespace — 'Trailing ignorieren' aktivieren
margin: 0; padding: 0; border: none;
margin: 0; padding: 0; border: none;
Ohne diese Option meldet Zeile 1 einen Unterschied (Leerzeichen am Zeilenende). Aktivieren Sie 'Trailing Leerzeichen / Tabs ignorieren', und der Diff geht auf null — derselbe Trick wie `git diff -b`.
So funktioniert es
- 1
Beide Versionen einfügen
Originaltext links, geänderter Text rechts. Live-Diff rendert beim Tippen; große Eingaben (>200 KB kombiniert) wechseln zu einem manuellen Diff-Button.
- 2
Benötigte Ignorier-Optionen aktivieren
Groß-/Kleinschreibung ignorieren, alle Leerzeichen ignorieren, Trailing-Spaces ignorieren oder Leerzeilen ignorieren — jede unabhängig, zwischen Besuchen erhalten.
- 3
Diff lesen oder Patch holen
Side-by-Side für menschliche Prüfung, Unified für das `---/+++/@@`-Patch-Format. 'Unified diff kopieren' sendet einen sauberen Patch in Ihre Zwischenablage für Code-Review oder `patch -p1`.
Häufige Diff-Fallen
Ganze Datei 'geändert' nach Windows-vs-Unix-Kopie
Wenn Sie aus Notepad unter Windows in ein unter Unix bearbeitetes Original einfügen, zeigt jede Zeile \r-Unterschiede. Aktivieren Sie 'Trailing Leerzeichen / Tabs ignorieren', um die CR-Zeichen zu unterdrücken.
Diff: 200 modifications (all because of trailing \r)
Ignore trailing spaces / tabs → 2 real changes
Diff schreit wegen Einrückung
Reformatierung Tabs ↔ Leerzeichen sprengt zeilenweise Diffs. 'Alle Leerzeichen ignorieren' kollabiert den Diff auf die tatsächlichen semantischen Änderungen.
Diff: 87 modifications (all are indent changes)
Ignore all whitespace → 4 actual changes
Identische Absätze wegen einer Leerzeile markiert
Eine einzelne leere Zeile in Prosa hinzuzufügen oder zu entfernen kann eine ganze Region falsch ausrichten. 'Leerzeilen ignorieren' behebt das, ohne den Inhalt anzufassen.
Diff: paragraph 2 'completely changed' (one blank line moved)
Ignore blank lines → no changes in paragraph 2
Diff meldet 'identisch', aber die Dateien sind unterschiedlich
Fast immer eine Case- oder Whitespace-Ignorier-Option aus einer früheren Sitzung. Öffnen Sie das Ignorier-Optionen-Panel — jeder Schalter ist dort sichtbar. Schalten Sie alle aus, wenn Sie einen byte-strikten Vergleich wollen.
0 differences shown, but `cmp` says the files differ
Disable all Ignore options → real diff appears
Eingefügtes JSON sieht aus wie 'alles geändert'
Text-Diff behandelt Schlüsselreihenfolge als signifikant; JSON tut das nicht. Für JSON-Payloads verwenden Sie das dedizierte JSON Diff-Tool — es ignoriert die Schlüsselreihenfolge und respektiert Typstriktheit.
Text diff on JSON: 100% of lines changed (just a key reorder)
<a href="/de/tools/json-diff">JSON Diff</a>: 0 differences
Diff-Truncated-Warnung ignoriert
Über 5.000 Zeilen pro Seite wird die Eingabe abgeschnitten. Wenn die Warnung erscheint, wechseln Sie zu Kommandozeilen-`diff -u file1 file2` oder `git diff --no-index` — beide streamen und bewältigen Gigabytes.
Pasted a 20,000-line log — only first 5,000 lines diffed
`diff -u a.log b.log` in terminal handles full file
Häufige Anwendungsfälle
- Code-Review-Snippet
- Fügen Sie zwei Versionen einer Funktion in die Felder ein, um eine Umbenennung, einen entfernten Branch oder eine neue Guard-Klausel auf einen Blick zu sehen. Inline-Wort-Hervorhebung ist schneller als das Scannen des GitHub-Diffs für eine einzeilige Änderung.
- Vertrags- / Richtlinien-Redline
- Fügen Sie den gestrigen Vertrag gegen die heutige Revision ein. Eingefügte Klauseln springen heraus; unveränderte Absätze fallen auf Grau zurück. Exportieren Sie den Unified-Patch für die juristische Prüfspur.
- Log-Timeline-Analyse
- Vergleichen Sie einen Vor-Incident-Log-Ausschnitt eines SRE mit dem Während-Incident-Ausschnitt. Latenz, Statuscode und Frequenzdrift erscheinen sofort ohne `awk`.
- Prosa- / Entwurfs-Revision
- Fügen Sie einen Entwurf und die Version Ihres Editors ein. Inline-Wort-Diff zeigt genau, welche Sätze umgeschrieben wurden — unverzichtbar, um Änderungen einzeln zu akzeptieren oder abzulehnen.
- Übersetzungs-Review
- Diffen Sie eine alte Übersetzung gegen eine Neuübersetzung, um zu bestätigen, dass die neue Fassung Bedeutung, Struktur und Platzhalter bewahrt. Aktivieren Sie 'Trailing-Spaces ignorieren', um Rauschen zu unterdrücken, das Übersetzer häufig einführen.
- Konfig- / .env-Datei-Audit
- Vergleichen Sie zwei `.env`-, `docker-compose.yaml`- oder Shell-rc-Dateien. Mit 'Leerzeilen ignorieren' aktiviert konzentriert sich der Diff auf funktionale Unterschiede statt auf Formatierungs-Rauschen.
Technische Details
- LCS mit Präfix-/Suffix-Trimming
- Gemeinsame führende und nachfolgende Zeilen werden vor dem dynamisch programmierten LCS abgeschnitten. Ein 'zwei 2.000-Zeilen-Configs mit einer geänderten Zeile'-Diff fällt auf eine 1×1-DP-Tabelle zusammen und rendert in unter einer Millisekunde.
- Token-Level-Intra-Line-Diff
- Benachbarte Entfernen- + Hinzufügen-Hunks werden gepaart und über Unicode-Wort-/Nicht-Wort-/Whitespace-Läufe tokenisiert. Ein zweiter LCS-Durchlauf produziert die grün/roten Token-Spans, die geänderte Zeilen lesbar machen.
- Unified Diff = git/patch-kompatibel
- Die Ausgabe folgt dem `---/+++/@@ -L,C +L,C @@`-Format, das für GNU patch definiert und von Git, GitHub und jedem Code-Review-Tool verwendet wird. Anwenden mit `pbpaste | patch -p0`.
- Eingabe-Cap bei 5.000 Zeilen pro Seite
- Über dem Cap wird der Diff abgeschnitten und warnt. Für Mehr-Megabyte-Eingaben verwenden Sie das Kommandozeilen-`diff -u` oder `git diff --no-index` — sie streamen und bewältigen Gigabytes.
Best Practices
- Ignorier-Optionen vor dem Lesen wählen
- Trailing-Space-, CRLF- und Case-Rauschen übertönt das Signal. Schalten Sie zuerst die richtigen Optionen ein; der Diff ist viel leichter zu lesen, und Sie trainieren sich nicht darauf, an 'falschen' Änderungen vorbeizulesen.
- Unified zum Teilen, Side-by-Side zum Prüfen
- Visuelle Spalten sind für Ihre Augen. Unified-Patches sind für die Terminals aller anderen. Ein kopierter Unified Diff landet ohne Übersetzung in einer Slack-Nachricht, einem Jira-Kommentar oder `patch -p1`.
- Plausibilitätsprüfung mit Übereinstimmungs-Prozent
- Wenn zwei Dateien 'fast gleich' sind, aber die Ähnlichkeitsbewertung 30 % beträgt, haben Sie ein Zeilenenden- oder Leerzeichen-Problem. Schalten Sie 'Alle Leerzeichen ignorieren' ein und prüfen Sie erneut, bevor Sie den Diff lesen.
Häufig gestellte Fragen
Wird der eingefügte Text an Ihren Server gesendet?
Was ist der Unterschied zwischen Text-Diff und JSON-Diff?
Wie ignoriere ich Leerzeichen, Groß-/Kleinschreibung oder Leerzeilen?
Was ist ein Unified Diff (und wann kopiere ich ihn)?
Warum werden ganze Zeilen als geändert markiert, wenn ich nur ein Wort bearbeitet habe?
Wie werden CRLF- und LF-Zeilenenden behandelt?
Wie groß dürfen die beiden Eingaben sein?
Was ist mit Code-Diff? Kennt er meine Sprache?
Warum erscheint eine einzelne Bearbeitung manchmal als entfernte Zeile plus hinzugefügte Zeile?
Wie wird die Übereinstimmungs-Prozentzahl berechnet?
Kann ich einen Diff mit einem Kollegen teilen?
Behandelt der Diff Rechts-nach-Links-Sprachen wie Arabisch oder Hebräisch?
Verwandte Werkzeuge
Alle Werkzeuge anzeigen →Kostenloser Regex-Tester — Muster online testen und debuggen
Textverarbeitung
Testen Sie reguläre Ausdrücke online sofort gegen beliebigen Text. Live-Treffer-Hervorhebung, Erfassungsgruppen, Ersetzungs-Vorschau, Split und Muster-Erklärer. JavaScript-Regex, 100 % Datenschutz, kostenlos, ohne Anmeldung.
Kostenloser Wortzähler & Zeichenzähler
Textverarbeitung
Zählen Sie Wörter, Zeichen, Sätze, Absätze und Lesezeit sofort. Echtzeit-Wortzähler mit Prüfung der Limits für Twitter, Meta-Description und Instagram. Kostenlos, privat, ohne Anmeldung.
Zahlensystem-Konverter — Binär, Hex, Dezimal & Oktal
Konvertierungswerkzeuge
Zahlen zwischen Binär, Hexadezimal, Dezimal, Oktal und beliebigen Basen (2–36) sofort konvertieren. Kostenlos, privat, ohne Anmeldung — alles läuft in Ihrem Browser.
Base64-Dekodierer & -Kodierer
Kodierung & Formatierung
Base64 online kostenlos dekodieren und kodieren. Echtzeitkonvertierung mit voller UTF-8- und Emoji-Unterstützung. 100 % privat — läuft in Ihrem Browser. Keine Anmeldung nötig.
Crontab Generator & Cron-Ausdruck Builder
Datum & Uhrzeit
Erstellen, validieren und entschlüsseln Sie Cron-Ausdrücke im Browser. Live-Vorschau der nächsten Läufe in lokaler Zeit oder UTC. POSIX-5-Feld-Syntax, Voreinstellungen, Klartextbeschreibung. Kostenlos, privat, ohne Anmeldung.
CSV-zu-JSON-Konverter
Kodierung & Formatierung
CSV im Browser nach JSON konvertieren. RFC 4180, Typinferenz, Kopfzeile, Big-Int-sicher. 100 % privat, kein Upload.