Diferencia de texto sin Git Revisar los cambios en los archivos y cadenas
No todas las comparaciones ocurren en un repositorio de Git. Los archivos de configuración se editan manualmente. Las respuestas de API se pegan en un hilo de Slack. Las consultas SQL se ajustan entre versiones en una hoja de cálculo. Cuando necesitas ver exactamente qué cambió entre dos fragmentos de texto, necesitas una herramienta de diferencias — aunque no necesariamente Git.
Aquí te explico cómo elegir la adecuada.
Cuándo necesitas una diferencia fuera de Git
La diferencia de Git está integrada en tu flujo de trabajo cuando los archivos están bajo control de versiones. Pero hay muchas situaciones que están fuera de eso:
- Archivos de configuración — comparar
nginx.confantes y después de un cambio, especialmente si el archivo no está en un repositorio - Snapshots de respuestas de API — detectar qué cambió entre dos cargas de JSON capturadas una semana aparte
- Consultas SQL — comparar una consulta que se ejecuta en entorno de desarrollo con la que se ejecuta en producción
- Documentación — revisar un documento manualmente editado antes de entregarlo
En estos casos, necesitas una comparación limpia sin necesidad de un commit ni un archivo estampado.
El comando Unix diff De banderas que importan
Si estás en Linux o macOS, diff ya está instalado. El uso básico es:
diff file1.txt file2.txt
Pero la salida por defecto es breve. Estas banderas hacen que sea legible:
# Unified format (same as Git's diff output — most familiar)
diff -u file1.txt file2.txt
# Side-by-side comparison
diff -y file1.txt file2.txt
# Ignore whitespace differences (useful for formatting changes)
diff -w file1.txt file2.txt
# Combine: unified format, ignore whitespace
diff -uw file1.txt file2.txt
Ejemplo de salida unificada:
--- file1.txt 2026-03-01 10:00:00
+++ file2.txt 2026-03-05 14:30:00
@@ -1,4 +1,4 @@
server {
- listen 80;
+ listen 443;
server_name example.com;
}
Las líneas que comienzan con - fueron eliminadas, + fueron añadidas. Las líneas sin prefijo son líneas no modificadas en contexto.
Diferencia de tres versiones: cuando tienes tres versiones
Una diferencia estándar compara dos archivos. Una diferencia de tres versiones maneja una tercera — el ancestro común. Así funciona la resolución de conflictos de fusión, incluso fuera de Git.
El diff3 El comando maneja esto:
diff3 mine.txt base.txt theirs.txt
Esto muestra qué cambió en mine.txt vs base.txt, y qué cambió en theirs.txt vs base.txt — marcando cualquier conflicto. Útil cuando dos personas han editado independientemente el mismo documento inicial y necesitas reconciliarlo sin un fusión de Git.
Diferencia programática: Python y Node.js
Cuando necesitas hacer una diferencia dentro de un script — o integrar la salida de diferencia en una aplicación — usa una biblioteca en lugar de ejecutar el comando diff.
Python — difflib:
import difflib
text1 = open("file1.txt").readlines()
text2 = open("file2.txt").readlines()
diff = difflib.unified_diff(text1, text2, fromfile="file1.txt", tofile="file2.txt")
print("".join(diff))
difflib también incluye HtmlDiff para generar una salida en formato lado a lado en HTML, y SequenceMatcher para obtener una relación de similitud entre dos cadenas — útil para coincidencias aproximadas.
Node.js — diff paquete:
npm install diff
const Diff = require('diff');
const one = 'SELECT id, name FROM users WHERE active = 1;';
const two = 'SELECT id, name, email FROM users WHERE active = 1 LIMIT 100;';
const changes = Diff.diffWords(one, two);
changes.forEach(part => {
if (part.added) process.stdout.write('\x1b[32m' + part.value + '\x1b[0m');
else if (part.removed) process.stdout.write('\x1b[31m' + part.value + '\x1b[0m');
else process.stdout.write(part.value);
});
El diff biblioteca soporta diferencias de carácter, palabra, línea, oración, JSON y CSS de forma nativa.
Cuándo una herramienta en línea es la mejor opción
El CLI es rápido si ya tienes dos archivos en disco. Pero cuando estás comparando texto copiado de dos fuentes — un hilo de Slack, dos respuestas de API, contenido del portapapeles — abrir un terminal y escribir archivos temporales es innecesario.
Una herramienta de comparación basada en navegador es la mejor opción para:
- Comparaciones de una sola vez sin archivos en disco
- Compartir una diferencia con alguien que no usa el terminal
- Verificar una copia antes y después sin necesidad de configuración
IO Tools Text Compare la maneja directamente en el navegador con resaltado de sintaxis y sin necesidad de subir archivos. Pega dos textos y ve la diferencia inmediatamente.
Comparación de datos estructurados: JSON y YAML son diferentes
Una diferencia de texto plano funciona línea por línea. JSON y YAML tienen estructura — y diferencias de formato (indentación, orden de claves) generan ruido inútil en una diferencia estándar.
Para JSON, normaliza primero:
jq --sort-keys . file1.json > file1_normalized.json
jq --sort-keys . file2.json > file2_normalized.json
diff -u file1_normalized.json file2_normalized.json
Esto elimina las variaciones de formato y muestra solo los cambios reales de contenido. Para YAML, herramientas como dyff entienden la estructura y reportan diferencias de forma semántica en lugar de línea por línea.
| Uso recomendado | Mejor herramienta | Notas |
|---|---|---|
| Archivos de texto plano | diff -u | Estándar, funciona en cualquier lugar |
| Lado a lado en terminal | diff -y | Salida amplia, buena para archivos cortos |
| Conflictos de fusión (sin Git) | diff3 | Comparación de tres versiones |
| Diferencia programática o automatizada | Pitón difflib o Node diff | Integrar en pipelines o aplicaciones |
| Comparación rápida de pegado | IO Tools Text Compare | Basada en navegador, sin configuración |
| JSON con ruido de formato | jq normalizar + diff | Ordenar claves, luego diferenciar |
| YAML | dyff, yamldiff | Con estructura consciente, mejor señal |
Cuándo usar cada herramienta
- Dos archivos en disco →
diff -u - Necesitas ignorar espacios en blanco →
diff -uw - Tres versiones para reconciliar →
diff3 - Construir un pipeline o script →
difflibo eldiffpaquete npm - Comparar dos pegados en un navegador → IO Tools Text Compare
- Diferenciar JSON → normalizar con
jq, luegodiff - Diferenciar YAML → usar
dyff
El método más rápido es el que se adapta a tu punto de partida. Si el texto ya está en tu portapapeles, una herramienta de comparación en navegador supera cualquier flujo en terminal. Si está en archivos, diff ya está en tu máquina.
También te puede interesar
Instalar extensiones
Agregue herramientas IO a su navegador favorito para obtener acceso instantáneo y búsquedas más rápidas
恵 ¡El marcador ha llegado!
Marcador es una forma divertida de llevar un registro de tus juegos, todos los datos se almacenan en tu navegador. ¡Próximamente habrá más funciones!
Herramientas clave
Ver todo Los recién llegados
Ver todoActualizar: Nuestro última herramienta Fue agregado el 4 de mayo de 2026
