Dubbele regels verwijderen: tekst online dedupliceren
Plak een willekeurige lijst, haal exacte duplicaten weg, behoud de volgorde of sorteer het resultaat. Schakelaars voor hoofdletters en witruimte inbegrepen.
Wat dit tool doet
Een gratis hulpmiddel in de browser om dubbele regels uit één blok tekst te verwijderen. Plak je invoer, kies of je de oorspronkelijke volgorde wilt behouden of de uitvoer wilt sorteren, en de duplicaten zijn weg. Niets verlaat je machine.
Het is het GUI-equivalent van sort -u op de commandoregel, of van awk '!seen[$0]++' als je het eerste voorkomen in de oorspronkelijke volgorde wilt houden. Als je ooit een e-mailexport van 4.000 regels in een terminal hebt geplakt om sort | uniq uit te voeren, dan is dit hetzelfde zonder terminal.
Deduplicatie is exact en regelgebaseerd. Twee regels moeten teken voor teken overeenkomen (afhankelijk van je hoofdletter- en trim-schakelaars) om als duplicaten te tellen. Fuzzy matching, bijna-duplicaatdetectie en gelijkheidsscores zijn opzettelijk buiten het bereik. Ander probleem, ander tool.
Hoe deduplicatie hier daadwerkelijk werkt
Intern loopt het tool elke regel één keer door en houdt geziene waarden bij in een hash-gebaseerde verzameling, dezelfde datastructuur als de Set van JavaScript of de set van Python. Lookups zijn gemiddeld O(1), dus een miljoen regels draaien op een gewone laptop in minder dan een seconde. Het onderliggende algoritme is gewone hash-table-membership.
Twee modi. Volgorde behouden houdt het eerste voorkomen van elke regel en gooit elk later duplicaat weg, zoals awk '!seen[$0]++' zich gedraagt. Sorteren en dedupliceren sorteert eerst de hele invoer alfabetisch en geeft elke unieke regel één keer uit, zoals sort -u zich gedraagt. Kies wat je downstream-consument verwacht.
Er zijn schakelaars voor de vergelijking zelf. Hoofdletterongevoelig behandelt [email protected] en [email protected] als dezelfde regel. Witruimte trimmen verwijdert leidende en achterliggende spaties en tabs vóór het vergelijken, dus " example", "example " en "example" vallen samen tot één item. Beide staan standaard uit omdat het veilige gedrag is precies te matchen wat is ingetypt.
Dubbele regels verwijderen in drie stappen
Eén invoerpaneel, één uitvoerpaneel. Niets wordt geüpload.
- 1
Plak je regels
Laat de tekst in het invoerpaneel vallen. Elke lijst werkt: e-mails, IPs, URLs, SKUs, log-tijdstempels, pakketnamen, alles met één per regel. Klik op Sample om een voorbeeld met opzettelijke duplicaten te laden als je het resultaat eerst wilt zien.
- 2
Kies je opties
Kies Volgorde behouden (houdt het eerste voorkomen, zoals awk '!seen[$0]++') of Sorteren en dedupliceren (alfabetisch, zoals sort -u). Schakel Hoofdletterongevoelig in als Alice en alice moeten samenvallen, en Witruimte trimmen als leidende of achterliggende spaties genegeerd moeten worden.
- 3
Kopieer of download het resultaat
Het rechterpaneel toont de gedeplupliceerde uitvoer en een telling van hoeveel regels zijn verwijderd. Klik op Copy om het te pakken, of Download om het op te slaan als .txt-bestand. Beide panelen scrollen onafhankelijk, zodat je kunt zien welke regels zijn verdwenen.
Wanneer je dit tool wilt
Een marketing-e-maillijst opschonen vóór import
Exporteer je lijst uit één CRM, voeg er een uit een webinar-aanmelding aan toe, plak beide in het tool, dedupliceer met Hoofdletterongevoelig en Witruimte trimmen aan. Mailchimp en HubSpot weigeren toch dubbele adressen bij import, maar ze weigeren de hele batch in plaats van alleen de duplicaten, dus dit eerst doen scheelt een herupload.
IP-adressen in een audit-log dedupliceren
Trek de bron-IPs uit een week auth.log met awk, plak ze, dedupliceer in volgorde-behouden modus. Je krijgt een schone lijst met unieke aanvallers zonder het ruwe chronologische signaal van "wie eerst opdook" te verliezen. Voer dat in je firewall-blokkadelijst.
Een lijst van URLs van meerdere paginas geschraapt opschonen
Een sitemap en een gepagineerde index schrapen geeft dezelfde URL meerdere keren terug. Laat de gecombineerde lijst vallen, sorteer en dedupliceer, en je hebt een canonieke crawl-frontier. Achterliggende slashes en query strings tellen nog steeds als verschillende regels, dus normaliseer die eerst als je ze wilt samenvoegen.
Ruis van pip freeze of npm ls reduceren tot unieke pakketten
pip freeze over twee virtualenvs, of npm ls --all over een monorepo, drukt hetzelfde pakket op veel regels af. Voeg samen, plak, dedupliceer, en je hebt één regel per naam==versie voor een snelle blik op wat er daadwerkelijk geïnstalleerd is.
CSV-rijen geplakt uit meerdere bronnen
Werkt voor regelniveau-dedup, wat je doorgaans nodig hebt als elke rij een op zichzelf staande record is. Let op: dit is platte-tekst-dedup, niet kolom-bewust. Als je echte rijniveau-dedup wilt die geciteerde kommas respecteert en kolomvolgorde negeert, gebruik dan een echt CSV-tool. Voor de meeste uit-spreadsheet-geplakte gevallen is regel-dedup genoeg.
Een gekopieerde bibliografie of citatielijst opschonen
Referenties uit drie browsertabbladen in één document kopiëren laat je achter met dezelfde DOI vier keer herhaald. Plak in, zet Witruimte trimmen aan (omdat kopieer-plakken uit PDFs verdwaalde spaties graag toevoegt), dedupliceer, en je krijgt een schone referentiesectie. Sorteermodus is hier handig voor alfabetische referentielijsten.
Dedup snelle referentie
De randgevallen die het vaakst bijten bij het dedupliceren van tekst. Het loont één keer door te lopen voordat je de uitvoer vertrouwt.
| Topic | What this tool does |
|---|
| Volgordebehoud | Volgorde-behouden houdt het eerste voorkomen en gooit latere dupes weg. Zoals awk '!seen[$0]++' of Python list(dict.fromkeys(lines)). Sorteermodus is alfabetisch, zoals sort -u. |
|---|
| Hoofdlettergevoeligheid | Standaard uit. Alice en alice zijn verschillend tenzij Hoofdletterongevoelig aan staat. E-mail- en gebruikersnaamlijsten willen het meestal aan; SKU-lijsten meestal niet. |
|---|
| Witruimte trimmen | Standaard uit. " example", "example " en "example" zijn drie verschillende regels totdat Witruimte trimmen aan staat. Interne spaties worden nooit aangeraakt. |
|---|
| Lege regels | Behandeld als een normale regelwaarde: lege string. Met dedup aan houd je één lege regel als die in de invoer stond. Om elke lege regel te strippen, gebruik een aparte witruimte-opschoonstap. |
|---|
| Regelafsluiters (CRLF vs LF) | Een regel die eindigt op \r\n is technisch verschillend van een die eindigt op \n als de afsluitende \r de splitsing overleeft. We splitsen op \r?\n, dus gemengde uiteinden vallen samen. Als je geestduplicaten ziet, heeft je invoer verdwaalde \r-tekens midden in de regel. |
|---|
| Unicode-normalisatie | Twee visueel identieke strings kunnen ongelijk vergelijken als de een NFC en de ander NFD gebruikt (vooraf samengestelde vs ontlede accenten). Dit tool normaliseert niet. Als je dit vermoedt, normaliseer beide invoeren eerst naar NFC met String.prototype.normalize('NFC') of Python unicodedata.normalize. |
|---|
| Afsluitende newline aan het einde van de invoer | Een bestand dat eindigt op \n heeft een fantoom lege laatste regel. De meeste editors verbergen dit. We behandelen het als één lege regel, gededupliceerd met andere lege regels. De uitvoer behoudt een enkele afsluitende newline volgens conventie. |
|---|
| Codering | UTF-8 overal. De browser regelt de decodering bij het plakken; als je bytes oorspronkelijk Latin-1 of Windows-1252 waren, kunnen tekens buiten ASCII verkeerd zijn voordat de dedup zelfs maar draait. Converteer codering stroomopwaarts. |
|---|
Dubbele regels verwijderen: veelgestelde vragen
Behoudt het de oorspronkelijke volgorde of sorteert het de uitvoer?
Beide, jouw keuze. Volgorde behouden houdt het eerste voorkomen van elke regel en gooit elk later duplicaat weg, dus de uitvoer leest in ongeveer dezelfde volgorde als de invoer. Sorteren en dedupliceren sorteert het hele resultaat alfabetisch. Volgorde behouden is wat je wilt als de volgorde betekenis draagt (chronologische logs, gerangschikte lijsten). Sorteren is wat je wilt als je gewoon een schone unieke set nodig hebt.
Is de vergelijking hoofdlettergevoelig?
Standaard ja, omdat dat de veilige aanname is. Alice en alice zijn verschillende regels tenzij je Hoofdletterongevoelig aanzet. De meeste e-mailsystemen behandelen adressen als hoofdletterongevoelig op het lokale deel, dus voor e-maillijsten wil je deze schakelaar bijna altijd aan. Hetzelfde geldt voor gebruikersnamen op hoofdletterongevoelige platforms. Voor SKUs en identificatoren die echt hoofdlettergevoelig zijn, laat het uit.
Kan het leidende en achterliggende witruimte negeren?
Ja, met Witruimte trimmen. Het verwijdert leidende en achterliggende spaties en tabs vóór het vergelijken, dus " example ", "example " en "example" vallen samen tot één item. Handig wanneer je invoer met de hand bewerkt of uit een PDF gekopieerd is, beide laten verdwaalde spaties achter. Interne witruimte binnen een regel wordt met rust gelaten.
Hoe verschilt dit van het Unix-commando uniq?
Het commando uniq voegt alleen aangrenzende duplicaten samen, een veelvoorkomende verrassing. Twee identieke regels gescheiden door een andere regel overleven beide uniq. Daarom is het Unix-idioom sort | uniq of sort -u: je moet eerst sorteren zodat duplicaten naast elkaar staan. Dit tool heeft geen gesorteerde invoer nodig, omdat het elke geziene regel in een hash-set bijhoudt terwijl het verdergaat.
Telt het hoeveel duplicaten elke regel had?
Nee, dat is een andere functie. Als je tellingen nodig hebt, is het Unix-commando uniq -c na een sort: sort input.txt | uniq -c | sort -rn geeft een frequentietabel gesorteerd op telling, wat je wilt bij het vinden van de meest voorkomende items. Dit tool richt zich op opschonen, niet op analyse.
Hoe groot mag de invoer zijn die ik plak?
Een paar miljoen regels is prima. De dedup zelf is O(n) met constante-tijd hash-lookups, dus de bottleneck is de browser die het resultatenpaneel rendert, niet de dedup. Voor zeer grote invoer (50 MB+), verwacht een merkbare pauze als de textarea opnieuw tekent. Als je invoer zo groot is, heb je vrijwel zeker al sort -u bij de hand; gebruik het.
Privacy en hoe dit werkt
Je tekst verlaat nooit je browser. De dedup draait op je machine, lokaal, tegen een JavaScript Set. Geen analytics op je invoer, geen logs, geen retour naar de cloud. Het hele tool is een paar regels code: splitsen op newlines, doorlopen, houden wat we niet hebben gezien. De standaard-bibliotheekprimitieven erachter zijn gedocumenteerd in de Set-referentie van MDN en de equivalente Python set-documentatie.