De volgorde van je lijst verandert nooit
Regels komen eruit in de volgorde waarin ze erin gingen. De meeste tools doen dit fout omdat de makkelijke manier om dubbelen te vinden is om eerst te sorteren en gelijke buren weg te gooien. Allebei de antwoorden uit Unix hebben dat probleem: sort -u geeft een gesorteerde lijst terug of je die nu wilde of niet, en uniq verwijdert alleen dubbelen die al naast elkaar staan, dus in een ongesorteerd bestand mist hij elke herhaling die niet naast zijn tweelingbroer ligt. Dit vergelijkt via een hashmap, dus de volgorde blijft staan en afstand doet er niet toe.
Eerste of laatste behouden
De laatste behouden houdt de plek van de laatste vermelding vast en verplaatst de overlever mee omlaag, wat de lijst herordent ten opzichte van de eerste behouden. In een logbestand, een export die alleen aangroeit of een lijst die iemand steeds corrigeerde is de laatste regel de actuele.
Het bepaalt ook welke schrijfwijze overleeft als regels niet byte voor byte gelijk zijn. Met Hoofdletters negeren aan zijn Appel en APPEL één regel; de eerste behouden schrijft Appel, de laatste behouden schrijft APPEL. De regel die overleeft wordt nooit herschreven.
Wat als dezelfde regel telt
Hoofdletters negeren gebruikt de volledige hoofdletterregels van Unicode, dezelfde regels in elke taal, dus É matcht é maar de Duitse ß matcht SS niet en de Turkse i zonder punt ı matcht i niet. Die vragen om taalspecifieke regels, en een ontdubbeling hoort niet af te hangen van wie er kijkt.
Omringende witruimte negeren trimt alleen de uiteinden, dus rode appel met één spatie en met twee blijven apart. Lege regels zijn regels: herhaalde lege regels klappen samen tot één. Regeleindes doen niet mee in de vergelijking, dus CRLF- en LF-bestanden ontdubbelen identiek.
Veelvoorkomende problemen
- Er is niets verwijderd terwijl je herhalingen ziet. De regels verschillen in een onzichtbaar teken: een spatie aan het eind, een tab, een vaste spatie van een webpagina, een spatie zonder breedte. Helpt trimmen niet, dan zit het verschil binnen de regel en benoemt Witruimte verwijderen het.
- Twee identiek ogende regels worden niet als dubbel gemeld.
ékan één codepunt zijn of eeneplus een combinerend accent. Allebei tekenen ze hetzelfde en vergelijken ze als verschillend. Hier wordt niets genormaliseerd, want je data stilletjes herschrijven is erger dan een misser die je kunt zien.
Veelgestelde vragen
Wordt mijn lijst ergens geüpload?
Nee. Ontdubbelde lijsten zijn meestal e-mailadressen, klantgegevens en geëxporteerde gebruikersdata. Alleen de vier instellingen gaan de URL in. De grens is 2 MB, ruwweg 60.000 tot 100.000 regels.
Kan het op één kolom van een CSV ontdubbelen?
Nee, het vergelijkt hele regels. Ontdubbelen op één kolom terwijl de rest van de rij blijft staan is werk voor een spreadsheet: Gegevens en daarna Duplicaten verwijderen in Excel of Google Spreadsheets laat je de kolommen kiezen.
Waarom heeft Excel geen optie om de laatste te behouden?
Duplicaten verwijderen in Excel houdt altijd de eerste in de huidige sorteervolgorde, dus de omweg daar is achterstevoren sorteren, ontdubbelen, en terug sorteren.
Verandert het de volgorde van mijn lijst?
Nee. Regels komen terug in de volgorde waarin ze geschreven zijn, met de herhalingen eruit. De eerste behouden houdt de oorspronkelijke plek; de laatste behouden verplaatst de overlever naar waar de laatste vermelding stond, en dat wil je als de latere regel de gecorrigeerde is.