Encuentra qué ha cambiado entre dos textos, línea a línea y carácter a carácter
El comparador de textos alinea un original y una versión modificada y clasifica cada línea. Una línea que solo existe en la versión modificada se considera añadida, una que solo está en el original se considera eliminada, y una que tiene pareja en ambos lados pero dice algo distinto se considera modificada. Dentro de una línea modificada vuelve a comparar por caracteres o por palabras, de modo que si «lunes 27 de octubre» pasa a «martes 28 de octubre», solo se resaltan las partes que de verdad cambiaron: «lun» y «mart», «7» y «8».
El espacio de trabajo de arriba se abre con el ejemplo del aviso de reunión ya cargado: 3 líneas modificadas, 1 añadida, 1 eliminada y una similitud del 77,5 %. Si vacías las dos casillas y pegas tu propio texto, la comparación se actualiza mientras escribes. Los textos y los archivos se procesan solo dentro de este navegador.
Cuándo conviene comparar textos
Leer dos versiones alternando con la vista hace que se escapen cambios de pocos caracteres, y son precisamente los que importan cuando una cifra o un «no» invierten el sentido. Una comparación mecánica es más rápida y más fiable.
- Revisar la corrección de un manuscrito: La revisión de un editor, la salida de un corrector ortográfico o un párrafo pulido por una herramienta de IA pueden esconder retoques que nadie pidió. Al comparar ves cuánto se movió y dónde, incluidos los cambios no solicitados.
- Recibir una nueva versión de un contrato, unas condiciones o una normativa: Las cláusulas peligrosas son aquellas en las que solo se movió una cifra: un plazo, un precio, un preaviso. Con el resaltado por caracteres hasta el paso de «2027» a «2028» salta a la vista.
- Reenviar un comunicado o una nota de prensa: Antes de mandar la versión corregida, reúne solo las líneas cambiadas en una nota de cambios breve, o explica a los destinatarios qué difiere exactamente del mensaje anterior.
- Revisar traducciones, subtítulos y listas exportadas: Compara dos traducciones de un mismo original, dos versiones de un archivo de subtítulos o dos exportaciones de la misma lista para encontrar líneas que faltan o sobran.
- Comparar archivos de configuración y fragmentos de código: Obtén un diff de dos versiones en un equipo sin herramientas de desarrollo. Las líneas que solo cambian de sangría se filtran con Ignorar espacios.
Cómo se usa
- Pega el texto anterior en la casilla Original y el texto corregido en la casilla Modificado. El botón Archivo de cada casilla abre un archivo de texto o un DOCX, y también puedes soltar un archivo sobre la casilla.
- El resumen y el resultado cambian en cuanto escribes. Si los pegaste al revés, el botón ⇄ entre las casillas intercambia el original y el modificado.
- Activa Ignorar espacios para pasar por alto espacios y sangrías, o Ignorar mayúsculas para pasar por alto la diferencia entre mayúsculas y minúsculas.
- En el resultado elige la vista En paralelo o Unificada y el resaltado por Caracteres o por Palabras. En un texto largo activa Solo cambios y recorre los cambios uno a uno con las flechas, o pulsa una marca del mapa de cambios del borde derecho.
- Para conservar el resultado, pulsa Copiar diff o Guardar. Usa Pantalla completa para verlo más grande.
Cómo leer el resultado
En la vista en paralelo el original queda a la izquierda y el modificado a la derecha, y una línea modificada se coloca frente a su pareja en la misma fila. En la vista unificada la línea nueva (+) va justo debajo de la línea que sustituye (−). Los números de línea son los reales de cada documento.
| Marca | Significado |
|---|---|
| ~ Modificada | Una línea con pareja en ambos lados cuyo contenido difiere. El lado del original lleva fondo rojo y el del modificado fondo verde, y la parte cambiada dentro de la línea se ve más oscura. |
| + Añadida | Una línea que solo está en el texto modificado. En la vista en paralelo, el lado del original queda vacío con un rayado. |
| − Eliminada | Una línea que solo está en el original. Los caracteres borrados dentro de una línea van tachados sobre fondo más oscuro, así se distinguen aunque no se perciban bien los colores. |
| = Igual | Una línea idéntica en los dos textos. Con Solo cambios activado, las líneas iguales se pliegan y solo quedan dos líneas de contexto alrededor de cada cambio. |
| ≈ | Una línea que se trata como igual por Ignorar espacios o Ignorar mayúsculas. Los caracteres son distintos, pero con el criterio elegido cuentan como iguales. |
| · → ⍽ □ | Símbolos que hacen visibles los cambios solo de espacios: por orden, un espacio normal, un tabulador, un espacio de no separación y un espacio de ancho completo. |
| 200B | Cuando un carácter invisible, como el espacio de ancho cero (U+200B), está donde hubo un cambio, se muestra su número Unicode en una cajita. |
El anillo de similitud del resumen indica cuánto coinciden los dos textos carácter por carácter, y la barra muestra la proporción de líneas iguales, modificadas, eliminadas y añadidas. La franja estrecha junto al resultado es el mapa de cambios: marca dónde caen los cambios a lo largo de todo el documento, así que en un texto largo ves de un vistazo dónde se concentran y puedes pulsar para ir allí.
Resultados de ejemplo
Los tres botones de ejemplo del espacio de trabajo producen exactamente los resultados de abajo. Los números son las líneas de cada categoría, no las filas que se ven en pantalla, y la similitud se trunca en el primer decimal.
| Ejemplo | Modificadas | Añadidas | Eliminadas | Iguales | Similitud | Cómo leerlo |
|---|---|---|---|---|---|---|
| Aviso de reunión | 3 | 1 | 1 | 3 | 77,5 % | Aparecen juntas la fecha, el día, la hora y la sala corregidos, una línea nueva para asistir por videollamada y una línea del acta eliminada. |
| Cláusulas de contrato | 4 | 1 | 0 | 0 | 82,5 % | Las cuatro cláusulas están modificadas y la cláusula 7 es nueva. Si en una línea solo cambió una cifra, solo esa cifra queda resaltada. |
| Configuración (tal cual) | 5 | 1 | 0 | 2 | 81,4 % | Al pasar de 2 a 4 espacios de sangría, todas las líneas salvo las dos llaves aparecen como modificadas. |
| Configuración (ignorando espacios) | 3 | 1 | 0 | 4 | 85,1 % | Las dos líneas que solo cambian de sangría se tratan como iguales y quedan tres valores cambiados y una línea añadida. |
El ejemplo de configuración muestra cuánto depende el resultado de los criterios aunque el texto sea el mismo. Si comparas tal cual un archivo cuya regla de sangría cambió, casi todas las líneas salen modificadas y los valores que de verdad cambiaron quedan enterrados.
Cuándo usar Ignorar espacios e Ignorar mayúsculas
Ignorar espacios quita de cada línea todos los espacios, tabuladores y espacios de ancho completo antes de comparar. Ignorar mayúsculas pasa las letras a minúsculas antes de comparar. Ninguno de los dos criterios toca los saltos de línea, de modo que una línea partida o unida sigue apareciendo como diferencia. En la tabla, · representa un espacio.
| Línea original | Línea modificada | Por defecto | Ignorar espacios | Ignorar mayúsculas | Ambos | Diferencia |
|---|---|---|---|---|---|---|
Costa·Rica | CostaRica | Modificadas | Iguales | Modificadas | Iguales | Falta un espacio entre las palabras. |
··"port":·8080, | ····"port":·8080, | Modificadas | Iguales | Modificadas | Iguales | Sangría de 2 espacios frente a 4. |
fin·con·espacio· | fin·con·espacio | Modificadas | Iguales | Modificadas | Iguales | Queda un espacio al final de la línea. |
Report | report | Modificadas | Modificadas | Iguales | Iguales | Solo cambia la mayúscula de la primera letra. |
Plaza·Mayor | plaza··mayor | Modificadas | Modificadas | Modificadas | Iguales | Difieren a la vez las mayúsculas y el número de espacios. |
Si estás corrigiendo los propios espacios, deja Ignorar espacios desactivado. Cuando revises valores en los que importan las mayúsculas, como contraseñas, rutas de archivo o nombres de variables, mantén también desactivado Ignorar mayúsculas. Los caracteres de fin de línea (CRLF en Windows, LF en macOS y Linux) y la presencia de un salto de línea final se consideran iguales sea cual sea el criterio; si es lo único que difiere, la línea de estado lo indica aparte.
Cómo encuentra las diferencias esta herramienta
Alinear líneas: Los dos textos se convierten en listas de líneas y la herramienta, respetando el orden, elige el mayor número posible de líneas idénticas en ambos lados. Es el problema de la subsecuencia común más larga (LCS), equivalente a buscar el menor número de líneas que hay que eliminar e insertar para convertir el original en la versión modificada. La herramienta lo resuelve con el algoritmo O(ND) que publicó Eugene W. Myers en 1986. N es la suma de líneas de los dos textos y D el número de eliminaciones e inserciones necesarias, así que cuantos menos cambios, antes termina, y como divide el camino por la mitad gasta poca memoria incluso en documentos grandes. Es también el algoritmo por defecto de git diff.
Emparejar líneas modificadas: Cuando un bloque de líneas eliminadas y otro de líneas añadidas quedan entre dos líneas idénticas, la herramienta mide cuánto se parece cada pareja según los fragmentos de dos caracteres que comparten. Primero elige, respetando el orden, las parejas con mayor similitud total; después empareja desde arriba las líneas restantes y cada pareja cuenta como modificación. Por eso, aunque insertes una frase nueva justo antes de una línea corregida, la frase nueva sigue siendo una adición y la línea corregida sigue siendo una modificación.
Comparar dentro de la línea: Cada pareja de líneas se divide de nuevo en caracteres o en palabras y se compara con el mismo algoritmo. Los caracteres son grafemas Unicode, de modo que un emoji o una letra con tilde combinada nunca se parte por la mitad, y las palabras siguen las reglas de límites de palabra del navegador, que también separan el japonés, que no usa espacios. Después, los fragmentos cortos sin cambios atrapados entre dos cambios se funden con ellos para que se lean en bloques a escala humana, como «rojo → azul». Esa limpieza sigue las reglas de la limpieza semántica (cleanupSemantic) de diff-match-patch de Google.
Similitud: Sea S el número de caracteres que coinciden en la misma posición dentro de las líneas iguales y de las modificadas, y A y B los caracteres del original y de la versión modificada. Similitud = 2 × S ÷ (A + B). Los saltos de línea no se cuentan y, con Ignorar espacios activado, tampoco los espacios. Solo muestra 100 % cuando los textos son totalmente idénticos; cualquier diferencia, por pequeña que sea, se trunca para que nunca llegue a 100 %.
Cómo leer el diff copiado o guardado
Copiar diff y Guardar generan el formato unificado de GNU diff (diff -u). Si copias el ejemplo del aviso de arriba obtienes el texto de abajo. Cada cambio lleva tres líneas de contexto sin cambios antes y después, y los cambios separados por seis líneas o menos se funden en un solo bloque.
--- Original
+++ Modificado
@@ -1,7 +1,7 @@
[Aviso] Reunión ordinaria de octubre
-La reunión será el lunes 27 de octubre a las 14:00 en la sala de reuniones de la tercera planta.
+La reunión será el martes 28 de octubre a las 15:00 en la sala de juntas de la tercera planta.
El orden del día incluye la revisión del presupuesto del segundo semestre y el calendario del nuevo proyecto.
-Traer: portátil e informe del trimestre anterior
-Si no puede asistir, responda antes del viernes.
-El acta se compartirá al día siguiente de la reunión.
+Para asistir por videollamada, use el enlace de la reunión.
+Traer: portátil
+Si no puede asistir, responda antes del jueves.
Gracias.
\ No newline at end of file
- Las líneas
---y+++son los nombres del original y de la versión modificada. Si abriste archivos, aquí aparecen sus nombres. @@ -1,7 +1,7 @@significa que este bloque abarca 7 líneas a partir de la línea 1 del original y 7 líneas a partir de la línea 1 de la versión modificada. Un bloque de una sola línea indica solo el número de línea, como-5, y un lado vacío indica la línea anterior y un 0, como+0,0.- Un signo menos (-) al inicio de la línea marca una línea solo del original, un signo más (+) una línea solo de la versión modificada, y una línea que empieza con un espacio es igual en ambos lados. Dentro de un bloque van primero todas las líneas del original y después las de la versión modificada.
- Si se aplica al original con el comando patch (
patch original.txt < guardado.diff), se obtiene el texto modificado, y las herramientas de revisión de código y los correos lo muestran bien. Cada línea conserva su salto de línea original (CRLF o LF) y, si la última línea no termina en salto de línea, le sigue una línea\ No newline at end of file. Un diff creado con Ignorar espacios o Ignorar mayúsculas no contiene esas diferencias, así que desactiva ambos criterios cuando necesites un diff para aplicar.
Archivos y codificaciones
Se abren archivos de texto de hasta 2 MB y archivos DOCX de hasta 20 MB. La extensión no importa: se lee cualquier archivo cuyo contenido sea texto, ya sea TXT, MD, CSV, JSON, HTML, SRT o un registro. Si cerca del principio aparece un byte cero, se trata como binario, igual que una imagen o un programa, y no se lee.
- Detección de la codificación: Si el archivo empieza con una marca de orden de bytes (BOM), se lee como UTF-8 o UTF-16 según indique. Si no la tiene, la herramienta prueba primero UTF-8. Si no encaja, prueba EUC-KR (incluido el CP949 de Windows), Shift_JIS y Windows-1252, se queda con la que da letras coreanas, kana o latinas naturales y muestra la codificación elegida sobre la casilla. El caso típico es un archivo antiguo de Windows guardado como «ANSI» en el Bloc de notas, que para el español suele ser Windows-1252 y es lo que hace que las tildes y la ñ salgan rotas en otras codificaciones.
- DOCX: Se lee el cuerpo del DOCX comprimido (word/document.xml) con un párrafo por línea. Una tabla da una línea por celda y los cuadros de texto se incluyen en el orden del cuerpo. Si el archivo conserva el control de cambios, el texto insertado se mantiene y el eliminado se descarta, es decir, se lee el cuerpo con todos los cambios aceptados. No se comparan encabezados, pies de página, notas al pie, comentarios ni formatos como fuentes y colores.
- Formatos que no se leen: Los archivos HWP y HWPX (del procesador de textos coreano), PDF, DOC, Excel, PowerPoint e imágenes no se leen directamente. Selecciona todo el cuerpo en el programa, cópialo y pégalo aquí. El texto copiado de un PDF puede quedar cortado al final de cada página, así que copia ambos lados de la misma manera para que el resultado sea exacto.
Errores frecuentes
- Poner el original y la versión modificada al revés: Entonces las adiciones y las eliminaciones parecen intercambiadas. Comprueba que el texto anterior está en A y el nuevo en B, y pulsa ⇄ si no es así.
- Pegar un texto con saltos de línea automáticos en un solo lado: El texto copiado de un correo o de un PDF viene cortado al ancho de la pantalla, y eso puede hacer que todas las líneas difieran. Copia los dos textos del mismo sitio y de la misma manera.
- Leer la similitud como un índice de plagio: La similitud es solo la proporción de caracteres que se conservan en el mismo orden. No dice nada sobre fuentes ni citas, y un pasaje copiado frase a frase pero reordenado puede dar una similitud baja.
- Aplicar un diff creado con un criterio de ignorar activado: Un diff creado con Ignorar espacios omite los cambios de sangría. Desactiva los criterios antes de crear un diff que vayas a aplicar a un archivo.
- Pasar por alto caracteres invisibles: El texto copiado de la web puede contener espacios de ancho cero o de no separación, y dos líneas que parecen iguales aparecen como distintas. Una cajita como 200B o un símbolo ⍽ en el punto cambiado es la causa.
Límites y precauciones
- Cada documento puede tener hasta 500.000 caracteres y 20.000 líneas. Divide los textos más largos por capítulos o páginas. Cuando un resultado supera las 1.000 líneas, se abre con Solo cambios activado.
- Si los dos textos son en su mayoría distintos, la alineación de líneas tiene un límite de 1 segundo. Al superarlo, en el tramo restante deja de buscar líneas iguales, empareja las líneas por orden como modificadas, añadidas o eliminadas y lo avisa en la línea de estado, por lo que el número de líneas modificadas puede salir mayor que el real. El resultado muestra hasta 3.000 líneas a la vez; un botón al final abre el resto.
- Los párrafos movidos no se rastrean aparte y aparecen como una eliminación y una adición. En un texto que repite muchas veces la misma frase caben varias alineaciones, así que el emparejamiento puede diferir del que haría una persona.
- Solo se comparan los caracteres. La herramienta no juzga si dos redacciones distintas significan lo mismo, si la ortografía es correcta ni nada sobre formato, fuentes o imágenes.
- La entrada y los resultados no se guardan, así que al cerrar la página desaparecen. Si un resultado contiene datos personales, revísalo de nuevo antes de copiarlo y compartirlo.
Fuentes
Fecha de referencia Los documentos de abajo se comprobaron en sus originales el 22 de octubre de 2026. Los datos de la revista del artículo de Myers se confirmaron con el registro de Crossref. Los números de líneas, las similitudes y el ejemplo de diff de este artículo son resultados de esta misma herramienta. Para el formato del diff se aplicaron 120 pares de documentos aleatorios al original con el comando patch para comprobar que el resultado es idéntico a la versión modificada, y la notación del rango vacío (-0,0) se contrastó con la salida del comando diff.
- 01Eugene W. Myers — An O(ND) Difference Algorithm and Its VariationsAlgorithmica vol. 1, pp. 251-266 (noviembre de 1986, DOI 10.1007/BF01840446). La subsecuencia común más larga y el guion de edición más corto son el mismo problema; la variante de espacio lineal
- 02J. W. Hunt, M. D. McIlroy — An Algorithm for Differential File ComparisonBell Laboratories Computing Science Technical Report #41 (julio de 1976)
- 03GNU Diffutils Manual — Unified FormatLa opción -u y las tres líneas de contexto por defecto
- 04GNU Diffutils Manual — Detailed Description of Unified FormatLa cabecera --- y +++, la cabecera de bloque @@ (un bloque de una línea indica solo la línea inicial) y el significado del espacio, - y + al inicio de la línea
- 05Documentación de Git — git-diff--diff-algorithm (por defecto myers), --word-diff
- 06Google diff-match-patch — APIdiff_cleanupSemantic: ordenar los cambios en bloques legibles para una persona
- 07Unicode — UAX #29 Unicode Text SegmentationGrafemas y límites de palabra
- 08WHATWG — Encoding StandardEUC-KR abarca la página de códigos 949 de Windows (Wansung extendido) y cómo se interpretan Shift_JIS y windows-1252
- 09Ecma International — ECMA-376 Office Open XMLEstructura del cuerpo de un DOCX (párrafo w:p, texto w:t, control de cambios w:ins y w:del)
- 10MDN — DecompressionStreamDescomprimir datos deflate-raw dentro del navegador
Preguntas frecuentes
¿El comparador de textos es gratuito y mi texto se envía a un servidor?
Es gratuito y no requiere registro. Los textos pegados y los archivos abiertos se comparan solo dentro de este navegador, no se envían a ningún servidor y no queda nada al cerrar la página. Para conservar un resultado, usa Copiar diff o Guardar.
¿Cómo decide la herramienta entre «modificada» y «eliminada» o «añadida»?
Primero alinea los dos textos por las líneas idénticas. Entre las líneas eliminadas y añadidas que quedan en medio, empareja las de caracteres más parecidos y las trata como modificadas, y luego empareja el resto por orden. Solo las líneas sin pareja quedan como eliminadas o añadidas.
¿Cómo se calcula una similitud del 77 %?
Es el doble del número de caracteres que coinciden en la misma posición dividido entre el total de caracteres de los dos textos. Los saltos de línea no se cuentan y, con Ignorar espacios activado, tampoco los espacios. Mide cuántos caracteres se conservaron, no si el significado es parecido.
¿Qué diferencia hay entre resaltar por caracteres y por palabras?
El resaltado por caracteres resalta solo «lun» y «mart» cuando «lunes» pasa a «martes», lo que va bien para retoques pequeños como una cifra o una terminación. El resaltado por palabras muestra la palabra cambiada entera y se lee mejor cuando se reescribió mucho una frase.
¿Puedo omitir las diferencias de espacios o de sangría?
Activa Ignorar espacios para quitar de cada línea todos los espacios y tabuladores antes de comparar, de modo que «Costa Rica» y «CostaRica», o líneas de código que solo cambian de sangría, cuentan como iguales. Esas líneas llevan una marca ≈ junto al número de línea y se cuentan en el resumen.
¿Puedo comparar archivos de Word, HWP o PDF?
Un DOCX se abre tal cual y cada párrafo del cuerpo pasa a ser una línea. Si quedan cambios controlados, el texto insertado se mantiene y el eliminado se descarta. HWP y PDF no se leen directamente: copia el texto desde el programa y pégalo.
¿Por qué un párrafo movido sale como eliminado y añadido?
La comparación respeta el orden de las líneas y hace coincidir cuantas líneas idénticas puede, así que un párrafo cambiado de sitio aparece como eliminación en un lugar y como adición en el otro. No se rastrean los movimientos; usa Solo cambios para ver ambos lugares juntos.
¿Qué significa @@ -1,7 +1,7 @@ en el diff copiado?
Es la cabecera de bloque de un diff unificado: el bloque compara 7 líneas desde la línea 1 del original con 7 líneas desde la línea 1 de la versión modificada. Debajo, un menos (-) al inicio marca una línea solo del original, un más (+) una línea solo de la versión modificada y un espacio una línea igual.