Comparador de textos: encontrar diferencias online

Pega dos versiones de un texto y verás las líneas añadidas, eliminadas y modificadas, con las palabras cambiadas resaltadas. Vista en paralelo o unificada y recuento de cambios.

Líneas añadidas: 2Líneas eliminadas: 2

11Lista de la compra:
2leche — 2 litros
2leche — 1 litro
33pan
44huevos — una docena
5queso
65café
6azúcar

Cómo se usa

Pega el texto original en «Original» y la versión nueva en «Modificado». Las diferencias aparecen al momento:

«Ignorar espacios» e «Ignorar mayúsculas» dejan fuera los espacios de más, la sangría y las mayúsculas: solo se ven los cambios de contenido.

Encima del resultado está el recuento de líneas añadidas y eliminadas. La vista En paralelo pone los textos en dos columnas; la Unificada muestra los cambios uno tras otro, como git diff. En el móvil el resultado siempre es unificado, porque dos columnas no caben. Los tramos largos sin cambios se pliegan a tres líneas alrededor de cada cambio; desmarca «Ocultar líneas sin cambios» para verlo todo.

Los textos se comparan en tu navegador y no se envían a ningún sitio: puedes comparar contratos, configuraciones y código.

Ejemplo

Original Modificado
Lista de la compra: Lista de la compra:
leche — 2 litros leche — 1 litro
pan pan
huevos — una docena huevos — una docena
queso café
café azúcar

Resultado: 2 líneas añadidas y 2 eliminadas. La línea de la leche ha cambiado y dentro de ella se resaltan «2 litros» y «1 litro». El queso se ha eliminado, el azúcar se ha añadido y el resto de líneas coinciden. Este ejemplo viene cargado en la herramienta.

Cómo funciona

Los dos textos se dividen en líneas y la herramienta busca el conjunto de cambios más corto: el mínimo de líneas eliminadas y añadidas que convierte el primer texto en el segundo. Es el algoritmo de Myers, el mismo que usa git diff por defecto. Dentro de cada pareja de líneas modificadas se comparan del mismo modo las palabras, los espacios y los signos de puntuación.

Si dos líneas no comparten ninguna palabra, el resaltado interno no aporta nada, así que simplemente se muestran como eliminada y añadida.

Preguntas frecuentes

¿Por qué un párrafo que he movido aparece como eliminado y añadido? La comparación busca una secuencia común de líneas en su orden original. Un bloque movido no puede quedarse en su sitio dentro de esa secuencia, así que aparece eliminado en la posición antigua y añadido en la nueva.

No veo ninguna diferencia, pero las líneas salen como modificadas. Lo más probable es que sea un carácter invisible: un espacio al final de la línea, un tabulador en lugar de espacios, un espacio de no separación. Los distintos finales de línea (Windows \r\n y Unix \n) no cuentan como diferencia. Puedes quitar los espacios de los extremos de cada línea con las herramientas de líneas.

¿Sirve para textos grandes? Sí: textos de decenas de miles de líneas se comparan en una fracción de segundo si no hay demasiadas diferencias. Los textos grandes completamente distintos tardan más.

¿Puedo comparar dos JSON? Sí, pero antes pasa los dos por el formateador de JSON ordenando las claves: así solo quedarán las diferencias reales y no las de sangría u orden de los campos.