0
Words
0
Characters
0
No spaces
0
Lines
0
Paragraphs
0
Sentences
0 min
Reading time
Lines with duplicates
Deduped output

Doppelte Zeilen entfernen: Text online deduplizieren

Beliebige Liste einfügen, exakte Duplikate entfernen, Reihenfolge behalten oder das Ergebnis sortieren. Schalter für Groß-/Kleinschreibung und Leerzeichen inklusive.

Was dieses Tool tut

Ein kostenloses Browser-Werkzeug, das doppelte Zeilen aus einem einzelnen Textblock entfernt. Eingabe einfügen, wählen, ob die ursprüngliche Reihenfolge erhalten bleiben oder die Ausgabe sortiert werden soll, und die Duplikate sind weg. Nichts verlässt deinen Rechner.

Es ist das GUI-Äquivalent zu sort -u auf der Kommandozeile, oder zu awk '!seen[$0]++', wenn du das erste Vorkommen in der ursprünglichen Reihenfolge behalten willst. Wenn du jemals einen 4.000 Zeilen langen E-Mail-Export ins Terminal eingefügt hast, nur um sort | uniq auszuführen, dann ist das dasselbe ohne Terminal.

Die Deduplizierung ist exakt und zeilenbasiert. Zwei Zeilen müssen Zeichen für Zeichen übereinstimmen (abhängig von deinen Schaltern für Groß-/Kleinschreibung und Trim), um als Duplikate zu zählen. Unscharfes Matching, Beinahe-Duplikat-Erkennung und Ähnlichkeits-Scores sind absichtlich nicht im Umfang. Anderes Problem, anderes Werkzeug.

Wie die Deduplizierung hier tatsächlich funktioniert

Intern läuft das Tool jede Zeile einmal durch und merkt sich gesehene Werte in einer Hash-basierten Menge, derselben Datenstruktur wie das Set in JavaScript oder das set in Python. Lookups sind im Schnitt O(1), also laufen eine Million Zeilen auf einem normalen Laptop in unter einer Sekunde durch. Der zugrundeliegende Algorithmus ist schlichte Mitgliedschaftsprüfung in einer hash table.

Zwei Modi. Reihenfolge behalten bewahrt das erste Vorkommen jeder Zeile und verwirft jedes spätere Duplikat, so wie sich awk '!seen[$0]++' verhält. Sortieren und deduplizieren sortiert zunächst die gesamte Eingabe alphabetisch und gibt jede eindeutige Zeile einmal aus, so wie sich sort -u verhält. Nimm das, was dein nachgelagerter Konsument erwartet.

Es gibt Schalter für den Vergleich selbst. Groß-/Kleinschreibung ignorieren behandelt [email protected] und [email protected] als dieselbe Zeile. Leerzeichen kürzen entfernt führende und nachgestellte Leer- und Tabulatorzeichen vor dem Vergleich, sodass " example", "example " und "example" zu einem einzigen Eintrag zusammenfallen. Beide sind standardmäßig aus, weil das sichere Verhalten ist, exakt das zu matchen, was eingegeben wurde.

Doppelte Zeilen in drei Schritten entfernen

Ein Eingabefeld rein, ein Ausgabefeld raus. Nichts wird hochgeladen.

  1. 1

    Zeilen einfügen

    Lege den Text in das Eingabefeld. Jede Liste geht: E-Mails, IPs, URLs, SKUs, Log-Zeitstempel, Paketnamen, alles eines pro Zeile. Klicke Sample, um ein Beispiel mit absichtlichen Duplikaten zu laden, falls du das Ergebnis vorher sehen willst.

  2. 2

    Optionen wählen

    Wähle Reihenfolge behalten (bewahrt das erste Vorkommen, wie awk '!seen[$0]++') oder Sortieren und deduplizieren (alphabetisch, wie sort -u). Schalte Groß-/Kleinschreibung ignorieren an, wenn Alice und alice verschmelzen sollen, und Leerzeichen kürzen, wenn führende oder nachgestellte Leerzeichen ignoriert werden sollen.

  3. 3

    Ergebnis kopieren oder herunterladen

    Das rechte Feld zeigt die deduplizierte Ausgabe und eine Zählung, wie viele Zeilen entfernt wurden. Klicke Copy, um sie zu greifen, oder Download, um sie als .txt-Datei zu speichern. Beide Felder scrollen unabhängig, sodass du erkennen kannst, welche Zeilen verschwunden sind.

Wann du dieses Tool willst

Marketing-E-Mail-Liste vor dem Import säubern

Exportiere deine Liste aus einem CRM, schiebe eine weitere aus einer Webinar-Anmeldung dazu, füge beide in das Tool ein, dedupliziere mit Groß-/Kleinschreibung ignorieren und Leerzeichen kürzen an. Mailchimp und HubSpot lehnen doppelte Adressen beim Import sowieso ab, aber sie lehnen den ganzen Stapel ab statt nur die Duplikate, also spart das Vorgehen einen erneuten Upload.

IP-Adressen in einem Audit-Log deduplizieren

Zieh die Quell-IPs aus einer Woche auth.log mit awk, füge sie ein, dedupliziere im Reihenfolge-behalten-Modus. Du bekommst eine saubere Liste eindeutiger Angreifer, ohne das grobe chronologische Signal "wer zuerst aufgetaucht ist" zu verlieren. Das geht dann in deine Firewall-Sperrliste.

URL-Liste, die von mehreren Seiten geschrappt wurde, säubern

Beim Schrappen einer Sitemap und eines paginierten Index kommt dieselbe URL mehrfach zurück. Wirf die kombinierte Liste rein, sortieren und deduplizieren, und du hast eine kanonische Crawl-Frontier. Schließende Slashes und Query-Strings zählen weiterhin als unterschiedliche Zeilen, also normalisiere die zuerst, wenn du sie zusammenführen willst.

Rauschen aus pip freeze oder npm ls auf eindeutige Pakete reduzieren

pip freeze über zwei virtualenvs hinweg, oder npm ls --all über ein Monorepo, gibt dasselbe Paket auf vielen Zeilen aus. Verketten, einfügen, deduplizieren, und du hast eine Zeile pro name==version für einen schnellen Blick darauf, was tatsächlich installiert ist.

CSV-Zeilen, aus mehreren Quellen eingefügt

Funktioniert für Deduplizierung auf Zeilenebene, was du normalerweise brauchst, wenn jede Zeile ein eigenständiger Datensatz ist. Achtung: Das ist Klartext-Deduplizierung, nicht spaltenbewusst. Wenn du echte Zeilenebenen-Deduplizierung willst, die Kommas in Anführungszeichen respektiert und Spaltenreihenfolge ignoriert, nimm ein echtes CSV-Tool. Für die meisten aus-einer-Tabelle-eingefügten Fälle reicht Zeilen-Dedup.

Kopierte Bibliografie oder Zitatliste säubern

Referenzen aus drei Browser-Tabs in ein Dokument zu kopieren hinterlässt dir denselben DOI viermal. Einfügen, Leerzeichen kürzen aktivieren (weil Copy-Paste aus PDFs gerne verirrte Leerzeichen hinzufügt), deduplizieren, und du bekommst einen sauberen Referenzabschnitt. Sortier-Modus ist hier praktisch für alphabetische Referenzlisten.

Schnellreferenz Deduplizierung

Die Randfälle, die beim Deduplizieren von Text am häufigsten beißen. Lohnt sich, einmal durchzugehen, bevor du der Ausgabe vertraust.

TopicWhat this tool does
Reihenfolge-ErhaltungReihenfolge-behalten bewahrt das erste Vorkommen und verwirft spätere Dupes. Wie awk '!seen[$0]++' oder Python list(dict.fromkeys(lines)). Sortier-Modus ist alphabetisch, wie sort -u.
Groß-/KleinschreibungsempfindlichkeitStandardmäßig aus. Alice und alice sind unterschiedlich, es sei denn Groß-/Kleinschreibung ignorieren ist an. E-Mail- und Benutzernamen-Listen wollen sie meist an; SKU-Listen meist nicht.
Leerzeichen-TrimStandardmäßig aus. " example", "example " und "example" sind drei verschiedene Zeilen, bis Leerzeichen kürzen an ist. Interne Leerzeichen werden nie angetastet.
Leere ZeilenWerden als normaler Zeilenwert behandelt: leerer String. Mit Dedup an behältst du eine leere Zeile, falls in der Eingabe welche waren. Um jede leere Zeile zu entfernen, nutze einen separaten Whitespace-Cleaner-Schritt.
Zeilenumbrüche (CRLF vs LF)Eine Zeile, die mit \r\n endet, ist technisch verschieden von einer, die mit \n endet, falls das nachgestellte \r das Splitten überlebt. Wir splitten an \r?\n, also fallen gemischte Endungen zusammen. Wenn du Geister-Duplikate siehst, hat deine Eingabe verirrte \r-Zeichen mitten in der Zeile.
Unicode-NormalisierungZwei visuell identische Strings können ungleich verglichen werden, wenn einer NFC und der andere NFD verwendet (vorgefertigte vs. zerlegte Akzente). Dieses Tool normalisiert nicht. Wenn du das vermutest, normalisiere beide Eingaben zuerst auf NFC mit String.prototype.normalize('NFC') oder Python unicodedata.normalize.
Schließender Zeilenumbruch am Ende der EingabeEine Datei, die auf \n endet, hat eine Phantom-leere letzte Zeile. Die meisten Editoren verbergen das. Wir behandeln das als eine leere Zeile, dedupliziert mit anderen leeren Zeilen. Die Ausgabe bewahrt einen einzelnen schließenden Zeilenumbruch per Konvention.
KodierungUTF-8 durchgehend. Der Browser kümmert sich beim Einfügen um die Dekodierung; falls deine Bytes ursprünglich Latin-1 oder Windows-1252 waren, könnten Zeichen außerhalb von ASCII falsch sein, bevor das Dedup überhaupt läuft. Wandle die Kodierung stromaufwärts um.

Doppelte Zeilen entfernen: häufig gestellte Fragen

Bewahrt es die ursprüngliche Reihenfolge oder sortiert es die Ausgabe?

Beides, deine Wahl. Reihenfolge behalten bewahrt das erste Vorkommen jeder Zeile und verwirft jedes spätere Duplikat, sodass die Ausgabe ungefähr in derselben Reihenfolge wie die Eingabe gelesen wird. Sortieren und deduplizieren sortiert das gesamte Ergebnis alphabetisch. Reihenfolge behalten ist, was du willst, wenn die Reihenfolge Bedeutung trägt (chronologische Logs, gerankte Listen). Sortieren ist, was du willst, wenn du nur eine saubere eindeutige Menge brauchst.

Unterscheidet der Vergleich Groß- und Kleinschreibung?

Standardmäßig ja, weil das die sichere Annahme ist. Alice und alice sind unterschiedliche Zeilen, es sei denn, du schaltest Groß-/Kleinschreibung ignorieren an. Die meisten E-Mail-Systeme behandeln Adressen am lokalen Teil als groß-/kleinschreibungsunempfindlich, also willst du diesen Schalter für E-Mail-Listen fast immer an haben. Dasselbe gilt für Benutzernamen auf groß-/kleinschreibungsunempfindlichen Plattformen. Für SKUs und Identifikatoren, die wirklich groß-/kleinschreibungsempfindlich sind, lass ihn aus.

Kann es führende und nachgestellte Leerzeichen ignorieren?

Ja, mit Leerzeichen kürzen. Es entfernt führende und nachgestellte Leer- und Tabulatorzeichen vor dem Vergleich, sodass " example ", "example " und "example" zu einem einzigen Eintrag zusammenfallen. Nützlich, wenn deine Eingabe handbearbeitet oder aus einem PDF kopiert wurde, beides hinterlässt verirrte Leerzeichen. Das interne Leerzeichen innerhalb einer Zeile wird in Ruhe gelassen.

Wie unterscheidet sich das vom Unix-uniq-Befehl?

Der uniq-Befehl fasst nur benachbarte Duplikate zusammen, was eine häufige Überraschung ist. Zwei identische Zeilen, die durch eine andere Zeile getrennt sind, überleben beide uniq. Deshalb lautet die Unix-Redensart sort | uniq oder sort -u: Du musst zuerst sortieren, damit Duplikate nebeneinander stehen. Dieses Tool braucht keine sortierte Eingabe, weil es jede gesehene Zeile in einem Hash-Set verfolgt, während es vorangeht.

Zählt es, wie viele Duplikate jede Zeile hatte?

Nein, das ist eine andere Funktion. Wenn du Zählungen brauchst, ist der Unix-Befehl uniq -c nach einem Sort: sort input.txt | uniq -c | sort -rn liefert eine nach Zählung sortierte Häufigkeitstabelle, was du willst, wenn du die häufigsten Einträge findest. Dieses Tool fokussiert auf Aufräumen, nicht auf Analyse.

Wie groß darf die Eingabe sein, die ich einfügen kann?

Ein paar Millionen Zeilen sind in Ordnung. Die Deduplizierung selbst ist O(n) mit konstantzeitigen Hash-Lookups, also ist der Flaschenhals der Browser, der das Ergebnisfeld rendert, nicht die Deduplizierung. Bei sehr großen Eingaben (50 MB+) erwarte eine spürbare Pause, wenn das Textarea neu zeichnet. Wenn deine Eingabe so groß ist, hast du fast sicher schon sort -u zur Hand; nutze es.

Datenschutz und wie das funktioniert

Dein Text verlässt deinen Browser nie. Das Dedup läuft auf deiner Maschine, lokal, gegen ein JavaScript Set. Keine Analyse deiner Eingabe, keine Logs, kein Cloud-Roundtrip. Das ganze Tool sind ein paar Zeilen Code: an Zeilenumbrüchen splitten, durchgehen, behalten was wir noch nicht gesehen haben. Die zugrundeliegenden Standardbibliotheks-Primitive sind in der Set-Referenz von MDN und den entsprechenden Python set Docs dokumentiert.