Ejemplos de comando DIFF en Linux

Ejemplos de comando DIFF en Linux
El comando DIFF es un análisis o comando informativo que imprime diferencias entre los archivos, analizándolos por línea o directorios de forma recursiva mientras informa al usuario qué cambios son necesarios para hacer que los archivos sean iguales, este punto es importante comprender las salidas de Diff. Este tutorial se centra en el comando DIFF.

Antes de comenzar, cree dos archivos usando cualquier editor de texto (Nano se usa en este tutorial) con el mismo contenido:

# nano diffsample1

Pasta interior:

 Linuxhint publica el mejor contenido para ti 

Prensa CONTROL+X e y para salvar y salir.

Cree un segundo archivo llamado DiffSample2 con el mismo contenido:

# nano diffsample2

Nota: Prestar atención a espacios y pestañas, los archivos deben ser 100% iguales.

Prensa CONTROL+X e y para salvar y salir.

# diff diffsample1 diffsample2

Como puede ver, no hay salida, no hay necesidad de hacer algo para hacer que los archivos sean iguales porque ya son iguales.

Ahora editemos el archivo DiffSample2 para hacer algún cambio:

# nano diffsample2

Luego reemplacemos la palabra "contenido" para "consejos":

Prensa CONTROL+X y Y Para guardar y salir.

Ahora corre:

# diff diffsample1 diffsample2

Veamos la salida:

La salida anterior, "3C3" significa "la línea 3 del primer archivo del de la línea 3 del segundo archivo". La parte amigable de la salida es que nos muestra qué texto debe cambiarse ("Contenido para ti" para "consejos para ti")

Esto nos muestra la referencia para el comando DIFF no es el primer archivo, sino el segundo, por eso el primer archivo tercera línea (la primera 3) debe cambiarse (c) como la tercera línea del segundo archivo (segundo 3).

El comando diff puede mostrar 3 caracteres:

C: Este personaje instruye a un Cambiar Debe ser hecho.
a: Este personaje instruye que algo debe ser Agregado.
d: Este personaje instruye que algo debe ser Eliminado.

Los primeros números antes de que un caracteres pertenezca al primer archivo, mientras que los números después de los caracteres pertenecen al segundo archivo.

El símbolo del segundo archivo que se utiliza como referencia.

Invirtamos el orden de los archivos, en lugar de ejecutar

# diff diffsample1 diffsample2

correr:

# diff diffsample2 diffsample1

Puede ver cómo se invirtió el pedido y ahora el archivo DiffSample1 se usa como referencia, y nos indica que cambiemos "consejos para usted" para "Contenido para usted", esta fue la salida anterior:

Ahora editemos el archivo diffsample1 así:

Elimine todas las líneas, excepto la primera línea en el archivo Diffsample1. Entonces corre:

# diff diffsample2 diffsample1

Como puede ver, ya que utilizamos el archivo diffsample1 como referencia, para que el archivo diffsample2 sea exactamente igual, necesitamos eliminar (d) líneas dos y tres (2,3) como en el primer archivo y las primeras líneas (1) será igual.

Ahora vamos a invertir el pedido y en lugar de ejecutar "# diff diffsample2 diffsample1 " correr:

# diff diffsample1 diffsample2

Como puede ver, mientras el ejemplo anterior nos instruía que lo eliminemos, este nos indica a agregar (a) líneas 2 y 3 después de la primera línea del primer archivo (1).

Ahora trabajemos en la propiedad sensible a los casos de este programa.

Edite el archivo diffsample2 como:

Y editar el archivo diffsample1 como:

La única diferencia son las letras mayúsculas en el archivo diffsample2. Ahora comparemos con Diff nuevamente:

# diff diffsample1 diffsample2

Como puede ver las diferencias de diff, las letras mayúsculas, evitamos la detección de letras mayúsculas, si no estamos interesados ​​en el caso sensible al agregar el -i opción:

# diff -i diffsample1 diffsample2

No se encontraron diferencias, la detección de casos fue deshabilitada.

Ahora cambiemos el formato de salida agregando la opción -u Se utiliza para imprimir salidas unificadas:

Además, hasta la fecha y la hora, la salida se muestra con un - y + símbolo de lo que se debe eliminar y lo que se debe agregar para hacer que los archivos sean iguales.

Al comienzo de este artículo, dije que los espacios y las pestañas deben ser iguales en ambos archivos, ya que también son detectados por el DIFF de comando, si queremos que el comando diff ignore los espacios y las pestañas, necesitamos aplicar el -w opción.

Abra el archivo diffsample2 y agregue espacios y pestañas:

Como puede ver, agregué un par de pestañas después de "lo mejor" en la segunda línea y también espacios en todas las líneas, cierre, guarde el archivo y ejecute:

# diff diffsample1 diffsample2

Como puede ver, se encontraron diferencias, además de las letras mayúsculas. Ahora apliquemos la opción -w Para instruir a la diferencia para ignorar los espacios en blanco:

Como puede ver a pesar de la tabulación, solo se encuentra como diferencia las letras mayúsculas.
Ahora agregemos la opción -I de nuevo:

#diff -wi diffsample2 diffsample1

El comando Diff tiene docenas de opciones disponibles para aplicar para ignorar, cambiar la salida, discriminar las columnas cuando está presente, etc. Puede obtener información adicional sobre estas opciones usando el comando MAN, o en http: // man7.org/Linux/Man-Pages/Man1/Diff.1.html. Espero que hayas encontrado este artículo con ejemplos de comando DIFF en Linux útil. Siga a Linuxhint para obtener más consejos y actualizaciones sobre Linux y Networking.