L'outil de Supprimer les Dupliqués prend un bloc de texte, le coupe en lignes et efface chaque ligne qui est une répétition exacte d'une ligne antérieure, dans le navigateur. Le marqueur montre l'exemple en marche : apple, banana, apple, cherry, banana, date. Vous appuyez sur le bouton Remove Duplicates, et le bloc de résultat imprime le texte dédupliqué dans un champ en lecture seule, avec une ligne verte au-dessus qui lit Removed 2 duplicate(s). Rien n'est envoyé nulle part : la coupe, l'ensemble et la jonction courent sur l'appareil, et le bouton Clear efface l'entrée, la sortie et le compteur.
Que la boîte reçoit et ce qu'elle rend
L'entrée est une zone de texte unique, de dix lignes de haut et redimensionnable, et rien d'autre n'est demandé. Au-dessus il y a un bouton Clear qui réinitialise tout, et en dessous un bouton d'action, Remove Duplicates, donc le calcul n'est pas en direct : le résultat ne change que quand vous l'appuyez. La sortie est une zone de texte en lecture seule de la même hauteur, et un bouton de copie se tient à côté de son étiquette Result, mais seulement quand la sortie n'est pas vide. La ligne verte de comptage, Removed N duplicate(s), n'apparaît que quand N est au-dessus de zéro, donc une entrée sans répétitions montre le résultat et rien d'autre.
Comment la déduplication marche
L'entrée est coupée en un tableau de lignes par les sauts de ligne, et les lignes sont parcourues dans l'ordre avec un ensemble qui se souvient de chaque ligne déjà gardée. La première fois qu'une ligne est vue, elle entre dans l'ensemble et dans la liste de sortie ; chaque fois qu'elle est revue, elle n'est comptée qu'une fois comme doublon et jetée. Les lignes gardées sont de nouveau jointes par des sauts de ligne, donc la sortie est l'entrée avec ses répétitions enlevées, dans l'ordre d'origine de première apparition, jamais réordonnée. Pour le marqueur, apple, banana, apple, cherry, banana, date, le résultat est apple, banana, cherry, date, avec 2 supprimées. Le parcours est une passe sur les lignes, donc une entrée de 100 000 lignes avec 50 000 uniques est traitée en environ 40 millisecondes.
Ce qui compte comme la même ligne
Deux lignes sont la même seulement quand chaque caractère coïncide, parce que la comparaison est une preuve exacte de chaîne, sans normalisation. Les majuscules comptent, donc A et a sont des lignes différentes et les deux restent. Les espaces comptent, donc un a avec un espace final et un a avec un espace initial sont des lignes différentes et les deux restent. Les accents comptent, donc café et cafe sont des lignes différentes et les deux restent. Les lignes vides comptent aussi comme lignes : une ligne qui est vide reste une ligne, et une ligne qui n'est qu'un espace est une ligne d'espace, donc deux lignes d'espaces seuls réduisent à une. Si vos répétitions diffèrent par une de ces choses, elles ne sont pas des répétitions pour cet outil, et le compteur reste à zéro.
Ce qui arrive aux sauts de ligne et aux lignes vides
La coupe ne cherche que le caractère de saut de ligne, donc un fichier qui finit par un saut de ligne sort avec une ligne de plus, vide, à la fin, et comme toute première apparition d'une ligne vide, elle est gardée : une entrée de a et b, chacun sur sa ligne finissant par un saut de ligne, revient sans changement, avec 0 supprimées. Deux lignes vides consécutives réduisent à une, et une entrée qui n'est qu'un saut de ligne supprime une ligne et imprime un résultat vide, qui montre quand même le bloc de résultat mais sans bouton de copie. Les sauts de ligne Windows sont le tranchant : la coupe ne retire pas le retour chariot, donc le même texte lu d'un fichier Windows est une ligne différente du même texte sans lui, et une copie du résultat garde les retours chariot.
Comment le compteur de supprimées est lu
La ligne verte ne compte que les lignes qui ont été jetées, pas celles qui ont été gardées. Quatre lignes identiques, x x x x, suppriment 3 et gardent 1 ; une entrée entremêlée, 1 2 1 2, supprime 2 et garde 2 ; et une entrée sans répétitions exactes ne montre rien, parce que la ligne ne se rend que quand le compteur est au-dessus de zéro. Le compteur est la différence entre le nombre de lignes de l'entrée et celui de la sortie, rien de plus.
Où va le texte
Nulle part hors de l'appareil. La valeur de la zone de texte est lue par la page, la coupe, l'ensemble et la jonction courent dans le navigateur, et aucune requête réseau n'a lieu à aucun moment. Il n'y a ni historique ni résultat stocké : le seul état sont les trois valeurs que la page garde, entrée, sortie et compteur, et Clear les remet à vide et à zéro. Copier utilise le presse-papiers du navigateur, donc le texte quitte la page seulement si vous appuyez sur copier et collez ailleurs.
De quoi il ne s'agit pas
L'outil déduplique des lignes, il ne normalise pas le texte : pour retirer les espaces et les lignes vides qui font que des lignes presque identiques semblent différentes, utilisez d'abord le Nettoyeur d'Espaces ; pour mettre les lignes gardées en ordre alphabétique ensuite, c'est le travail de l'outil Trier les Lignes ; et pour compter combien de fois chaque mot apparaît au lieu de chaque ligne, c'est le travail du Compteur de Fréquence de Mots. Pour le pas à pas d'un outil de texte de la même veine, voyez le guide d'inversion de texte.