Inicio > Procesamiento y búsqueda de texto > diff

diff: Comparar diferencias entre dos archivos (formato unificado)

El comando diff analiza y muestra las diferencias entre dos archivos o directorios. En particular, la opción `-u` (Unified) muestra los resultados en un formato unificado que incluye las líneas modificadas junto con su contexto circundante, lo que lo hace muy útil para revisar cambios en el código o rastrear el historial de cambios en sistemas de control de versiones. Este formato ayuda a comprender intuitivamente qué se ha agregado, eliminado o modificado.

Descripción general

diff -u compara el contenido de dos archivos y muestra las diferencias en formato unificado. Este formato muestra las líneas modificadas junto con algunas líneas de contexto circundante, lo que facilita la comprensión de qué se ha modificado y cómo. Es una herramienta esencial, especialmente para la gestión de código fuente o el seguimiento del historial de cambios en archivos de configuración.

Características principales

  • Muestra diferencias en formato unificado
  • Proporciona contexto para los cambios
  • Útil para revisión de código y control de versiones
  • Distingue claramente adiciones/eliminaciones/modificaciones

Opciones principales

El comando diff ofrece varias opciones, pero aquí se describen las que se usan comúnmente junto con la opción `-u`.

Formato de salida

Comportamiento de comparación

Comando generado:

Combina los comandos.

Descripción:

`diff` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Varios ejemplos de uso del comando diff -u.

Comparar diferencias entre dos archivos en formato unificado

diff -u file1.txt file2.txt

Muestra las diferencias entre file1.txt y file2.txt en formato unificado.

Comparar archivos de dos directorios de forma recursiva

diff -ur dir1 dir2

Compara recursivamente todos los archivos dentro de los directorios dir1 y dir2 y muestra los resultados en formato unificado.

Comparar archivos ignorando cambios de espacios en blanco

diff -uw file1.txt file2.txt

Compara las diferencias reales de contenido ignorando los cambios en los caracteres de espacio en blanco (espacios, tabulaciones, etc.) en el contenido del archivo.

Comparar archivos ignorando líneas con un patrón específico

diff -u -I '^#' config1.conf config2.conf

Compara las diferencias entre los archivos config1.conf y config2.conf ignorando las líneas de comentarios (líneas que comienzan con #).

Guardar la salida unificada como archivo de parche

diff -u old_file.txt new_file.txt > changes.patch

Muestra las diferencias entre dos archivos en formato unificado y guarda el resultado en el archivo 'changes.patch'. Este archivo puede ser aplicado con el comando 'patch'.

Consejos y precauciones

Consejos para interpretar y utilizar eficazmente la salida de diff -u.

Cómo interpretar la salida unificada

La salida de diff -u utiliza los siguientes símbolos para indicar los cambios:

  • --- (tres guiones): Indica la ruta y la marca de tiempo del archivo original (old).
  • +++ (tres signos más): Indica la ruta y la marca de tiempo del archivo nuevo (new).
  • @@ -START_OLD,COUNT_OLD +START_NEW,COUNT_NEW @@: 'Encabezado de fragmento' que indica el número de línea y el rango de las líneas donde ocurrieron los cambios en el archivo.
  • - (guion): Línea que solo existe en el archivo original, lo que significa una línea eliminada.
  • + (signo más): Línea que solo existe en el archivo nuevo, lo que significa una línea agregada.
  • (espacio): Línea que existe en ambos archivos, lo que significa una línea de contexto sin cambios.

Integración con el comando patch

La salida generada por diff -u se puede usar como entrada para el comando `patch`. Esto permite aplicar o revertir fácilmente los cambios de un archivo a otro. Por ejemplo, después de crear un archivo de parche con el comando `diff -u old_file new_file > changes.patch`, puede aplicar los cambios de `changes.patch` a `old_file` usando el comando `patch -p0 < changes.patch` para que sea idéntico a `new_file`.


comandos relacionados

Son comandos que son funcionalmente similares o que se usan juntos con frecuencia.


Comandos de la misma categoría