Texto

Cómo eliminar líneas duplicadas sin borrar la copia equivocada

Tres formas de quitar duplicados de una lista, y qué hacer con ese par de líneas que se ven idénticas y se niegan a fusionarse.

Pega la lista en un eliminador de duplicados, ejecuta sort -u list.txt en una terminal, o selecciona la columna en Excel y usa Datos → Quitar duplicados. Cualquiera de las tres termina en segundos. Lo que te cuesta la tarde es ese par de líneas que se ven idénticas y se niegan a fusionarse, y la pregunta que ninguna de esas herramientas hace en voz alta: cuando una línea se repite, ¿qué copia debe sobrevivir?

¿Cuál es la forma más rápida de quitar duplicados de una lista?

Para cualquier cosa que puedas revisar con la vista — unos miles de direcciones de correo, una columna de SKU, un montón de URL salidas de un crawl — una herramienta de navegador es el camino más corto, porque puedes mirar el resultado antes de comprometerte con él. Pegar la lista en un eliminador de líneas duplicadas devuelve cada línea distinta una sola vez, en el orden en que apareció por primera vez, y te dice cuántas repeticiones descartó. No se sube nada: es JavaScript corriendo en tu pestaña, algo que importa cuando la lista es la cartera de clientes o un conjunto de URL internas.

Sea cual sea la herramienta, revisa si conserva el orden. Ordenar es la forma más barata de encontrar duplicados, así que varias de las respuestas estándar — sort -u, el Sort-Object -Unique de PowerShell — reordenan la lista como efecto secundario. Si la tuya tenía un orden con sentido, prioridad o cronología o el orden en que un script la escribió, eso se perdió y no lo puedes recuperar a partir del resultado.

¿Qué copia debe sobrevivir?

Si los duplicados son idénticos byte a byte, no hay ninguna diferencia. En cuanto tu regla de coincidencia se vuelve laxa — ignorar mayúsculas y minúsculas, ignorar los espacios de alrededor — las copias sí son distintas y estás eligiendo entre grafías.

La mayoría de las herramientas deciden esto en silencio. Excel conserva la fila de arriba de cada grupo y borra el resto. Con sort -u la pregunta nunca surge, porque dos líneas solo cuentan como iguales cuando son idénticas. Solo vale la pena pensarlo cuando le dijiste a propósito a una herramienta que fuera indulgente con las mayúsculas o los espacios.

Por qué dos líneas que se ven idénticas no se fusionan

Es la queja que recibe cualquier eliminador de duplicados que se haya escrito, y casi nunca es culpa de la herramienta. Algo invisible es distinto.

La normalización no te salva de los caracteres que solo se parecen. La а cirílica (U+0430) y la a latina (U+0061) son letras distintas que casualmente comparten forma; también lo son un apóstrofo curvo y uno recto, y las letras latinas de ancho completo que se usan en los textos en japonés. Ninguna forma de normalización las fusiona, porque fusionarlas sería un error. Esas se arreglan a nivel de carácter, con una pasada de buscar y reemplazar sobre toda la lista antes de eliminar ningún duplicado. Si no logras averiguar qué carácter tiene la culpa, la guía de caracteres invisibles en el texto enumera a los sospechosos de siempre y cómo detectarlos.

En la línea de comandos, uniq es una trampa

uniq solo elimina duplicados adyacentes. Recorre el archivo comparando cada línea con la anterior, así que una lista con repeticiones repartidas por todas partes sale sin un solo cambio, sin error y sin aviso. La gente pierde horas con esto.

En Excel y Google Sheets

Quitar duplicados de Excel está en la pestaña Datos. Selecciona el rango y marca las columnas que se van a comparar: Excel borra las filas sobrantes ahí mismo y te dice cuántas se fueron. Dos cosas que conviene saber: las filas son duplicadas solo si coinciden todas las columnas marcadas, y el borrado es destructivo — deshacer es el único camino de vuelta, así que duplica la hoja primero si los datos no se pueden volver a generar.

Google Sheets tiene el mismo comando destructivo en Datos → Limpieza de datos → Quitar duplicados, pero también tiene =UNIQUE(A2:A), que escribe la lista sin duplicados en una columna libre y deja la original intacta. Esa es la mejor opción por defecto: puedes comparar las dos lado a lado, y el resultado se actualiza cuando cambia la fuente. Para contar en vez de eliminar, =COUNTIF(A:A, A2) arrastrado hacia abajo te dice cuántas veces aparece cada valor en la columna.

Encontrar los duplicados en lugar de borrarlos

Muchas veces las repeticiones son justo lo que importa. Qué dirección se inscribió dos veces, qué número de factura se emitió a dos clientes, qué ID de seguimiento cayó en la exportación más de una vez: no quieres una lista limpia, quieres a los infractores.

La herramienta del navegador tiene un modo para exactamente esto: cambia Mostrar a “Solo las líneas que se repitieron” y marca el prefijo de recuento, y obtienes cada línea repetida una vez con el número de veces que apareció. Lo inverso — solo las líneas que aparecieron exactamente una vez — sirve para conciliar dos listas que deberían haber coincidido. En la línea de comandos, sort file | uniq -d hace el primer trabajo y uniq -u el segundo.

Dónde deja de funcionar la eliminación de duplicados por líneas

Una herramienta que trata cada línea como un solo string opaco es rápida, predecible y equivocada para varios trabajos comunes.

Una última costumbre que vale la pena adoptar: ejecuta la eliminación de duplicados y después mira los conteos. “12.000 líneas de entrada, 11.998 distintas” suele significar que ya tenías una lista limpia y que el problema es otro. “12.000 de entrada, 340 distintas” significa que tu exportación se ejecutó 35 veces. Los números te dicen más sobre los datos que la lista ya limpia.

Si tienes una lista abierta en otra ventana, el eliminador de líneas duplicadas lo hará ahora mismo: el recorte y la eliminación de líneas en blanco ya están activados, y los conteos de abajo muestran lo que encontró antes de que copies nada. Activa la normalización Unicode si la lista vino de más de una fuente.

La otra mitad de ordenar una lista es ponerla en un orden sensato, y eso es menos obvio de lo que parece en cuanto hay números o mayúsculas y minúsculas mezcladas. Ordenar una lista alfabética y numéricamente explica por qué “item10” sigue quedando antes que “item2”.

Preguntas frecuentes

¿Cómo elimino líneas duplicadas de un archivo de texto?

Pégalo en un eliminador de duplicados del navegador para cualquier cosa de hasta unos cientos de miles de líneas, o ejecuta sort -u file.txt en una terminal para archivos más grandes. En una hoja de cálculo, selecciona la columna y usa Datos y luego Quitar duplicados. Las tres opciones conservan una copia de cada línea distinta.

¿Cómo elimino duplicados pero conservo el orden original?

Usa una herramienta que indexe las líneas en lugar de ordenarlas. En la línea de comandos, awk '!seen[$0]++' file.txt conserva la primera aparición de cada línea en su posición original. sort -u a secas no puede hacerlo, porque ordenar es justamente como encuentra los duplicados.

¿Por qué no se eliminan las líneas duplicadas?

Porque en realidad no son idénticas. Las causas habituales son un espacio al final, un espacio de no separación pegado desde una página web, un acento guardado en forma descompuesta o un carácter parecido de otro alfabeto. Activa primero el recorte y la normalización Unicode; si las líneas se siguen negando a fusionarse, la diferencia es un carácter que no puedes ver y tienes que buscarlo y reemplazarlo directamente.

¿uniq elimina todas las líneas duplicadas?

No. uniq solo compara cada línea con la inmediatamente anterior, así que los duplicados repartidos por el archivo sobreviven intactos. Ordena la entrada primero con sort file | uniq, o usa sort -u, que hace las dos cosas en una sola pasada.

¿Cómo encuentro qué líneas están duplicadas en lugar de borrarlas?

Cambia la herramienta del navegador a “Solo las líneas que se repitieron” y marca el prefijo de recuento, que muestra cada línea repetida una vez con cuántas veces apareció. En la línea de comandos, sort file | uniq -d lista las líneas repetidas y uniq -c antepone a cada línea su conteo.

¿Es seguro eliminar duplicados de una lista en línea?

Depende de si el sitio envía tu texto a un servidor. Muchos lo hacen, lo que significa que una lista de clientes o una exportación interna queda en los logs de otra persona. Una herramienta que se ejecuta en el navegador nunca transmite el texto, y cerrar la pestaña lo descarta.

Última actualización 19 de septiembre de 2026