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.
- Quédate con la primera en todo lo que solo crece: un log, una lista de inscripciones, una cola. La entrada más antigua es la real y todo lo que viene después es un reenvío.
- Quédate con la última cuando las entradas posteriores son correcciones. Las exportaciones de CRM y de facturación suelen funcionar así: el mismo registro aparece varias veces y la última fila trae el teléfono actual.
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.
- Espacios al final. Un solo espacio después de una palabra hace única a la línea y es completamente invisible. Por eso la mayoría de las herramientas recortan por defecto.
- Espacios de no separación. Copiar de una página web, de Word o de un PDF suele traerse el U+00A0 en lugar de un espacio normal. La misma forma, otro carácter.
- Acentos descompuestos. La letra é puede ser un solo punto de código (U+00E9) o una
esimple seguida de un acento agudo combinante (U+0301). Se ven igual y se comparan como strings distintos. Los nombres de archivo de macOS han usado históricamente la forma descompuesta mientras que casi toda la entrada web usa la compuesta, así que una lista armada con las dos fuentes llega llena de gemelas. Normalizar a NFC las colapsa. - Retornos de carro. Un archivo escrito en Windows termina sus líneas con CR + LF. Mézclalo con un archivo hecho en Unix y una herramienta ingenua ve un retorno de carro suelto colgando de la mitad de tus líneas.
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.
sort -u list.txt— ordena y elimina duplicados en una sola pasada. El orden original se pierde. Compara usando las reglas de collation de tu locale; ponLC_ALL=Cdelante para una comparación de bytes simple.awk '!seen[$0]++' list.txt— conserva la primera aparición de cada línea y preserva el orden original. Mantiene en memoria cada línea distinta, que es el precio de no ordenar.sort list.txt | uniq -d— lista solo las líneas que aparecieron más de una vez.uniq -cantepone a cada una su conteo. Ambas necesitan la entrada ordenada, por el motivo de arriba.Get-Content list.txt | Sort-Object -Unique— el equivalente en PowerShell. Ten en cuenta que por defecto no distingue mayúsculas de minúsculas, a diferencia de las herramientas Unix; agrega-CaseSensitivesi eso importa.
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.
- CSV con campos entrecomillados. Un valor que contiene un salto de línea es CSV válido y cualquier cosa que no interprete el formato lo partirá en dos “líneas”. Eliminar duplicados por una columna entre muchas necesita una hoja de cálculo o un script que entienda registros.
- Casi duplicados. “Acme Ltd.” y “Acme Limited” son la misma empresa y ninguna herramienta de coincidencia exacta las emparejará jamás. Tampoco “john@example.com” y “John@Example.com ” con un espacio al final, a menos que actives el recorte de espacios y la comparación sin distinguir mayúsculas. La coincidencia difusa es otro problema con otra clase de herramienta.
- Diferencias que quieres inspeccionar en vez de eliminar. Si la pregunta real es qué cambió entre dos versiones de la misma lista, eliminar duplicados destruye la evidencia. Comparar los dos textos línea por línea es la herramienta para eso.
- Archivos muy grandes. Una pestaña del navegador maneja unos cientos de miles de líneas sin problema. Un log de varios millones de líneas la va a congelar, y pegar un archivo de 200 MB en un cuadro de texto ya es un suplicio antes de que presiones nada. Para eso está
sort -u.
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