La herramienta de Eliminar duplicados toma un bloque de texto, lo parte en líneas y borra cada línea que sea un repetido exacto de una línea anterior, en el navegador. El marcador muestra el ejemplo en marcha: apple, banana, apple, cherry, banana, date. Pulsa el botón Remove Duplicates, y el bloque de resultado imprime el texto deduplicado en un campo de solo lectura, con una línea verde encima que lee Removed 2 duplicate(s). Nada se envía a ningún lado: la división, el conjunto y la unión corren en el dispositivo, y el botón Clear borra la entrada, la salida y la cuenta.
Qué recibe la herramienta y qué da
La entrada es un único área de texto, de diez líneas de alto y redimensionable, y no se pide nada más. Arriba hay un botón Clear que lo reinicia todo, y abajo un botón de acción, Remove Duplicates, así que el cálculo no es en vivo: el resultado solo cambia cuando lo pulsas. La salida es un área de texto de solo lectura de la misma altura, y un botón de copiar se sienta junto a su etiqueta Result, pero solo cuando la salida no está vacía. La línea verde de cuenta, Removed N duplicate(s), aparece solo cuando N está sobre cero, así que una entrada sin repeticiones muestra el resultado y nada más.
Cómo funciona la deduplicación
La entrada se parte en un array de líneas por los saltos de línea, y las líneas se recorren en orden con un conjunto que recuerda cada línea ya conservada. La primera vez que se ve una línea, entra en el conjunto y en la lista de salida; cada vez que se vuelve a ver, solo se cuenta como duplicada y se descarta. Las líneas conservadas se vuelven a unir con saltos de línea, así que la salida es la entrada con sus repeticiones sacadas, en el orden original de primera aparición, nunca reordenada. Para el marcador, apple, banana, apple, cherry, banana, date, el resultado es apple, banana, cherry, date, con 2 eliminadas. El recorrido es una pasada sobre las líneas, así que una entrada de 100,000 líneas con 50,000 únicas se procesa en unos 40 milisegundos.
Qué cuenta como la misma línea
Dos líneas son la misma solo cuando cada carácter coincide, porque la comparación es una prueba exacta de cadena, sin normalización. Las mayúsculas cuentan, así que A y a son líneas distintas y ambas se quedan. Los espacios cuentan, así que un a con un espacio final y un a con un espacio inicial son líneas distintas y ambas se quedan. Los acentos cuentan, así que café y cafe son líneas distintas y ambas se quedan. Las líneas vacías también cuentan como líneas: una línea que está vacía sigue siendo una línea, y una línea que es solo un espacio es una línea de espacio, así que dos líneas de solo espacios reducen a una. Si tus repeticiones difieren en una de estas cosas, no son repeticiones para esta herramienta, y la cuenta se queda en cero.
Qué pasa con los saltos de línea y las líneas vacías
La división solo busca el carácter de salto de línea, así que un archivo que termina con un salto de línea saca una línea extra, vacía, al final, y como cualquier primera aparición de una línea vacía, se conserva: una entrada de a y b, cada uno en su línea terminando con un salto de línea, vuelve sin cambios, con 0 eliminadas. Dos líneas vacías consecutivas reducen a una, y una entrada que es un solo salto de línea elimina una línea e imprime un resultado vacío, que todavía muestra el bloque de resultado pero sin botón de copiar. Los saltos de línea de Windows son el filo: la división no quita el retorno de carro, así que el mismo texto leído de un archivo de Windows es una línea distinta del mismo texto sin él, y una copia del resultado conserva los retornos de carro.
Cómo se lee la cuenta de eliminadas
La línea verde cuenta solo las líneas que se tiraron, no las que se conservaron. Cuatro líneas idénticas, x x x x, eliminan 3 y conservan 1; una entrada entrelazada, 1 2 1 2, elimina 2 y conserva 2; y una entrada sin repeticiones exactas no muestra nada, porque la línea solo se renderiza cuando la cuenta está sobre cero. La cuenta es la diferencia entre el número de líneas de la entrada y el de la salida, nada más.
A dónde va el texto
A ninguna parte fuera del dispositivo. El valor del área de texto se lee en la página, la división, el conjunto y la unión corren en el navegador, y no se hace ninguna petición de red en ningún punto. No hay historial ni resultado guardado: el único estado son los tres valores que la página guarda, entrada, salida y cuenta, y Clear los reinicia a vacío y cero. Copiar usa el portapapeles del navegador, así que el texto sale de la página solo si pulsas copiar y lo pegas en otro lado.
Qué no es
La herramienta deduplica líneas, no normaliza el texto: para quitar los espacios y las líneas vacías que hacen que líneas casi idénticas se vean distintas, usa antes el Limpiador de espacios; para poner las líneas conservadas en orden alfabético después, eso lo hace la herramienta Ordenar Líneas; y para contar cuántas veces aparece cada palabra en vez de cada línea, eso lo hace el Contador de frecuencia de palabras. Para el recorrido de una herramienta de texto de la misma vena, mira la guía de inversión de texto.