Comment supprimer les lignes en double d’une liste

Collez un élément par ligne puis appuyez sur Supprimer les doublons. La première occurrence de chaque ligne reste à sa place et les copies suivantes disparaissent : le résultat conserve donc l’ordre d’origine au lieu d’être trié.

La comparaison est stricte : « Apple » et « apple » sont deux lignes différentes, tout comme « apple » et « apple » suivi d’une espace. Les trois cases sous le champ assouplissent cette règle lorsque la liste vient de sources différentes.

  1. Collez la liste dans le champ ci-dessus, un élément par ligne.
  2. Au besoin, cochez Ignorer la casse, Ignorer les espaces en début et fin de ligne ou Supprimer les lignes vides.
  3. Appuyez sur Supprimer les doublons, ou utilisez Ctrl (Cmd sur Mac) + Entrée dans le champ.
  4. Lisez la ligne d’état : lignes en entrée, supprimées, lignes en sortie.
  5. Appuyez sur Copier pour mettre le résultat dans le presse-papiers, ou sur Effacer pour vider le champ et le résultat.

Ce qui compte comme doublon et ce que contient le résultat

Comment chaque ligne est comparée

Chaque ligne est comparée telle qu’elle a été saisie, caractère par caractère. La casse compte (« Total » et « total » sont deux lignes), une espace finale compte, et deux lignes d’apparence identique peuvent différer : une espace insécable (U+00A0) à la place d’une espace normale, ou un accent écrit comme caractère combinant au lieu d’un seul point de code, les maintiennent séparées. C’est pourquoi une liste copiée depuis une page web ou un PDF garde parfois un « doublon » invisible à l’œil.

Les lignes vides comptent aussi comme du contenu. Une suite de lignes vides se réduit à une seule ligne vide, et une liste qui se termine par un saut de ligne est traitée comme se terminant à son dernier élément : le saut n’ajoute plus de ligne vide au résultat, contrairement à la version précédente de cette page.

Options, compteurs et résultat

Ignorer la casse compare les lignes en minuscules. Ignorer les espaces en début et fin de ligne rogne chaque ligne et ramène les suites d’espaces (tabulations comprises) à une seule espace, si bien que « JS tools » correspond à « js tools ». Supprimer les lignes vides retire les lignes vides du résultat. La ligne conservée est toujours la première, telle qu’elle a été écrite, jamais la forme normalisée.

La ligne « Lignes en entrée / Supprimées / Lignes en sortie » indique ce qui s’est passé : les entrées comptent les lignes lues (un saut de ligne final ne compte pas), les supprimées comptent chaque ligne écartée et les sorties celles qui restent. Le résultat est du texte brut, prêt à coller dans une colonne de tableur, une liste IN SQL ou un tableau de code.

Confidentialité, limites et exactitude

L’outil s’exécute dans ce navigateur : le texte est lu dans le champ, dédoublonné localement puis réaffiché, sans aucun envoi. Mesuré sur cette version avec Chrome réel : aucune requête ne quitte la page pendant le traitement d’une liste.

Un résultat de plus de 50 000 caractères s’affiche sans couleurs de syntaxe, car le coloriseur partagé s’arrête là ; le texte, lui, ne change pas. Les lignes dont la valeur est le nom d’une propriété d’objet JavaScript — toString, constructor, valueOf, hasOwnProperty, __proto__ et autres — étaient supprimées par l’ancienne version même lorsqu’elles n’apparaissaient qu’une fois. Cette version les conserve, ce qui explique aussi que les compteurs puissent différer de ceux d’avant.

Outils récents :