Comando de diferencias de Linux

Es más probable que la diferencia sea un concepto o sentimiento que pueda distinguir una cosa de otra. El comando «diff» se refiere a la variación. Al analizar los documentos línea por línea, esta herramienta demuestra las distinciones entre los archivos. Nos informa qué secciones de un documento deben modificarse para crear documentos similares, a diferencia de sus elementos complementarios cmp y comm. El aspecto crucial a tener en cuenta es que para que los documentos sean similares, diff utiliza símbolos y comandos especiales específicos. Se le dan instrucciones sobre cómo modificar el primer documento para que sea consistente con el otro documento. Dentro de esta guía, discutiremos el uso del comando «diff» en Ubuntu 20.04 usando la terminal de Linux.

Hemos estado creando dos archivos de texto en la carpeta de trabajo de nuestro sistema.

Es hora de usar la instrucción «diff» en un área de consulta para mostrar la diferencia entre los contenidos de ambos archivos. Probamos esta instrucción «diff» con ambos nombres de archivo en una secuencia, es decir, uno.txt primero y luego dos archivos.txt. La ejecución del comando “diff” nos muestra la diferencia entre ambos archivos como:

  • Números de línea según el primer archivo de texto.
  • Caracteres/símbolos especiales para informarnos sobre la diferencia como cambiar, agregar, eliminar.
  • Números de línea según el segundo archivo de texto.

En nuestra primera ilustración, desarrollamos el símbolo «a» entre los números de línea de la salida del comando «diff»; “a” se utiliza como abreviatura de “Add”. El uso de la instrucción «gato» con ambos nombres de archivo en el área de consulta muestra por separado el contenido dentro de cada archivo de texto, es decir, uno.txt y dos.txt. Tenemos un total de 4 líneas dentro del primer archivo mientras que el segundo archivo contiene 5 líneas. La línea 1 es adicional.

Luego, probamos la instrucción «diff» en el área de consulta del terminal seguida de los nombres de los archivos: one.txt y two.txt. La ejecución de esta instrucción muestra «0a1» como salida junto con la línea 1 del segundo archivo, que es una línea adicional en el segundo archivo. El valor numérico “0” se utiliza para la línea 0 o antes de la línea 1 del primer archivo, es decir, one.txt. El símbolo “a” significa “añadir”. Finalmente, el valor numérico “1” significa la primera línea del segundo archivo. La salida mixta «0d1» significa que la línea 1 del segundo archivo «dos.txt» debe agregarse en la parte superior del primer archivo «uno.txt» antes de que la primera línea dos haga que ambos archivos sean iguales.

Ahora, actualizamos ambos archivos para ver otra ilustración. El primer archivo «one.txt» contiene 4 líneas y el segundo archivo «two.txt» contiene solo 3 líneas. La única diferencia para estos archivos es el uso de una línea adicional en el primer archivo, es decir, la línea 1 = «Lunes», que no está en el segundo archivo. Después de probar la instrucción «diff» para los archivos de texto actualizados, obtenemos «1d0» como salida. Y se muestra la primera línea del primer archivo. En «1d0», 1 significa que la primera línea del archivo «one.txt» debe eliminarse (según el símbolo «d»), y 0 significa que el segundo archivo no se actualizó. Al final, se muestra la línea 1 del primer archivo «one.txt» para ver la clara diferencia.

De manera similar, el comando «diff» puede mostrar una diferencia entre las líneas de dos archivos. Por lo tanto, actualizamos ambos archivos de texto una vez más. Esta vez, el primer archivo contiene 5 líneas mientras que el segundo archivo contiene solo 4. La única diferencia es el uso de una línea adicional en one.txt, que es la línea 3. El comando diff utilizado en ambos archivos en la terminal muestra un salida «3d2» junto con la línea 3 del primer archivo «one.txt». Esta salida muestra que la línea 3 del primer archivo «one.txt» debe eliminarse para que podamos sincronizar ambos archivos en la línea 2 del segundo archivo. La línea diferente «3» se muestra para que podamos tener una idea clara sobre la diferencia.

Echemos un vistazo claro y más profundo a la salida. El resultado 1,5c1,2 de la siguiente imagen muestra que las líneas 1 a 5 de un primer archivo (one.txt) deben cambiarse con las líneas 1 a 2 de un segundo archivo (two.txt). Significa que las primeras 5 líneas (1 a 5) del archivo one.txt deben cambiarse y reemplazarse con las primeras dos líneas (1, 2) del segundo archivo «two.txt» para que quede igual. Al final, se muestran las 5 líneas del primer archivo, que deben reemplazarse con las 2 líneas mostradas del segundo archivo. Así es como el símbolo «c» indica la diferencia entre dos archivos: ninguna línea es igual en ambos archivos.

El comando «diff» le permite obtener su salida en forma de contexto. Imagine que tiene los mismos dos archivos con los siguientes datos en estos archivos. El contexto en torno a la salida sería mostrar la principal diferencia entre el total de archivos simples que se muestran en la siguiente imagen. Ahora tenemos 5 líneas en el primer archivo “one.txt” y 4 líneas en el segundo archivo “two.txt”.

Para obtener la salida basada en el contexto de la instrucción «diff», necesitamos usar la opción «-c» dentro del comando «diff». Usando los archivos actualizados previamente en este comando «diff», obtenemos el siguiente resultado: fecha, día, junto con la información adicional sobre la creación de texto dentro de los archivos. Se muestran las 5 líneas de los archivos one.txt. Más especialmente, su tercera línea se resalta usando el carácter «-» para simplemente agregarlo a otro archivo.

Conclusión

Tratamos de explicar brevemente todo sobre la instrucción «diff». Para esto, actualizamos nuestros archivos de texto cada vez y obtuvimos una salida actualizada para agregar, eliminar y cambiar los datos en un archivo. La introducción explicó el propósito de usar el comando «diff» en Linux y cómo usarlo para Linux.