GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando diff de Linux

Introducción

La diff de Linux El comando se usa para comparar dos archivos línea por línea y mostrar la diferencia entre ellos. Esta utilidad de línea de comandos enumera los cambios que debe aplicar para que los archivos sean idénticos.

Siga leyendo para obtener más información sobre diff comando y sus opciones con ejemplos fáciles de seguir.

diff Sintaxis

La sintaxis para usar diff el comando es:

diff [option] file1 file2

Sintaxis de salida

Al trabajar con diff , es crucial saber interpretar la salida, que consiste en:

  • Salida que comienza con < se refiere al contenido del primer archivo.
  • Salida que comienza con > se refiere al contenido del segundo archivo.
  • Números de línea correspondientes al primer archivo.
  • Un símbolo especial. Los símbolos especiales indican cómo debe editarse el primer archivo para que coincida con el segundo archivo. La salida puede mostrar:
    • a (añadir)
    • c (cambiar)
    • d (eliminar)
  • Números de línea correspondientes al segundo archivo.

Ejemplo de diferencias

Para mostrar cómo diff comando funciona, creamos dos archivos de muestra y comparamos su contenido.

Crear dos archivos de muestra

1. Primero, usando la terminal, cree un archivo Linux llamado example1.txt . Usamos el editor de texto Nano, pero puede usar un editor de texto de su elección.

sudo nano example1.txt

2. Una vez que el editor de texto crea y abre el archivo, agregue las siguientes líneas:

Apple
Orange
Banana
Watermelon
Chery

3. Guarde y salga del archivo:mantenga presionada Ctrl + X y confirme presionando Y .

4. A continuación, cree un example2.txt archivo ejecutando:

sudo nano example2.txt

5. Agregue el siguiente contenido al archivo:

Orange
Peach
Apple
Banana
Melon
Cherry

6. Guarde los cambios y salga.

Comparar los archivos con el comando diff

1. Con los dos archivos de muestra en su lugar, use el diff comando para ver en qué se diferencian y cómo hacerlos idénticos:

diff example1.txt example2.txt 

El resultado enumera instrucciones sobre cómo modificar el primer archivo para que tenga el mismo contenido que en example2.txt . Veamos la salida de los archivos de muestra y decodifiquemos las instrucciones.

  • 1d0 – La primera línea (1 ) del primer archivo debe eliminarse (d ). Si no, aparecería en la línea 0 en el segundo archivo.
  • < Apple –El contenido que necesita eliminar (como se hace referencia con 1d0 ).
  • 2a2,3 – En línea 2 del primer archivo, debe agregar (a ) líneas 2 y 3 (2,3 ) del segundo archivo.
  • > Peach , > Apple – El contenido que necesita agregar (como se hace referencia con 2a2,3 ).
  • 4c5 – La cuarta línea (4 ) del primer archivo debe cambiarse (c ) a la quinta línea (5 ) del segundo archivo.
  • < Watermelon – El contenido que necesita cambiar.
  • > Melon – A qué necesita cambiarlo.

Opciones de diferencias

Sin opciones adicionales, diff muestra la salida en el formato predeterminado. Hay formas de modificar este resultado para que sea más comprensible o aplicable para su caso de uso. Siga leyendo para obtener más información sobre diff opciones de comando.

-c Opción

El formato de contexto es diff opción de utilidad de línea de comandos que genera varias líneas de contexto alrededor de las líneas que difieren.

Para mostrar la diferencia entre los archivos en forma de contexto, use el comando:

diff -c file1 file2

Eche un vistazo a la salida de los archivos de muestra en el formulario de contexto en la imagen a continuación.

Las líneas que muestran información sobre el primer archivo comienzan con *** , mientras que las líneas que indican el segundo archivo comienzan con --- .

Las dos primeras líneas muestran el nombre y la marca de tiempo de ambos archivos:

*** example1.txt             2021-12-27 10:53:30.700640904 +0100
--- example2.txt             2021-12-27 10:54:41.304939358 +0100

**************** - se usa solo como separador.

Antes de enumerar las líneas de cada archivo, la salida comienza con el rango de línea de los archivos:

***  1,5 ****
---  1,6 ----

El resto de las líneas enumeran el contenido de los archivos. El comienzo de cada línea indica cómo modificar example1.txt para que sea igual que example2.txt . Si la línea comienza con:

- (menos):debe eliminarse del primer archivo.
+ (más):debe agregarse al primer archivo.
! (signo de exclamación):debe cambiarse a la línea correspondiente del segundo archivo.

Si no hay símbolo, la línea sigue siendo la misma.

Por lo tanto, en el ejemplo anterior, debe eliminar Apple desde la primera línea, reemplaza Watermelon con Melon en la línea cuatro y agrega Peach y Apple a las líneas dos y tres.

-u Opción

El formato unificado es una opción que puede agregar para mostrar la salida sin líneas de contexto redundantes. Para hacerlo, use el comando:

diff -u file1 file2

Ahora, examinemos la salida de los archivos de muestra en el formato unificado:

Las líneas que muestran información sobre el primer archivo comienzan con --- , mientras que las líneas que indican el segundo archivo comienzan con +++ .

Las dos primeras líneas muestran el nombre y la marca de tiempo de ambos archivos:

*** example1.txt             2021-12-27 10:53:30.700640904 +0100
--- example2.txt             2021-12-27 10:54:41.304939358 +0100

@@ -1,5 +1,6 @@ - muestra el rango de línea para ambos archivos.

Las líneas a continuación muestran el contenido de los archivos y cómo modificar example1.txt para hacerlo idéntico a example2.txt . Cuando la línea comienza con:

- (menos):debe eliminarse del primer archivo.
+ (más):debe agregarse al primer archivo.

Si no hay símbolo, la línea sigue siendo la misma.

En el ejemplo anterior, el resultado indica que Apple y Watermelon debe eliminarse, mientras que Peach , Apple y Melon debe agregarse.

-i Opción

Por defecto, diff distingue entre mayúsculas y minúsculas. Si desea que ignore mayúsculas y minúsculas, agregue -i opción al comando:

diff -i file1 file2

Por ejemplo, si creamos un archivo con las siguientes líneas:

Apple
Orange
Banana
Watermelon
Cherry

Y otro archivo con el contenido:

Apple
orange
Banana
watermelon
Cherry

La salida sin opciones adicionales muestra que hay diferencias entre los archivos y da instrucciones sobre cómo modificarlos.

Sin embargo, si agrega el -i opción, no hay salida ya que el comando no detecta ninguna diferencia.

--Opción de versión

Para comprobar la versión de diff ejecutándose en su sistema, ejecute el comando:

diff --version

--Opción de ayuda

Para generar un resumen de diff ejecución de uso:

diff --help

Otras opciones de diferencias

Otras opciones que diff los apoyos incluyen:


Linux
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo usar el comando de historial de Linux

  4. Cómo usar el comando Tar en Linux

  5. Cómo usar el comando id en Linux

Cómo usar un comando de archivo en Linux

Cómo usar el comando fd en el sistema Linux

¿Cómo usar el comando wget en Linux?

¿Cómo usar el comando xargs en Linux?

¿Cómo usar el comando Gzip en Linux?

Cómo usar el comando lsof en Linux

    -a / --text Ver archivos como texto y compararlos línea por línea.
    -b / --ignore-space-change Ignore los espacios en blanco al comparar archivos.
    -B / --ignore-blank-lines<code> Ignore las líneas en blanco al comparar archivos.
    --binary Compara y escribe datos en modo binario.
    -d --minimal Modifique el algoritmo (por ejemplo, para encontrar un conjunto más pequeño de cambios).
    -e / --ed Hacer que la salida sea ed válida guión.
    -E / --ignore-tab-expansion Ignorar la extensión de tabulación al comparar archivos.
    -l / --paginate Ejecutar la salida a través de pr para paginarlo.
    -N / --new-file Tratar un archivo perdido como presente pero vacío.
    -q / --brief Indique si los archivos difieren sin especificar detalles.
    -s / --report-identical-files Salida cuando los archivos son idénticos.
    -w / --ignore-all-space Ignore los espacios en blanco al comparar archivos.