Cómo comparar dos archivos de texto usando Linux

Esta guía le mostrará cómo usar Linux para comparar dos archivos y mostrar su diferencia en la pantalla o en un archivo. No necesita instalar ningún software especial para comparar archivos usando Linux, pero sí necesita saber cómo abrir una ventana de terminal.

Esta guía le mostrará cómo usar Linux para comparar dos archivos y mostrar su diferencia en la pantalla o en un archivo.

No necesita instalar ningún software especial para comparar archivos usando Linux, pero sí necesita saber cómo abrir una ventana de terminal.

Como muestra la guía vinculada, hay muchas maneras de abrir una ventana de terminal usando Linux. Lo más simple es presionar las teclas CTRL, ALT y T al mismo tiempo.

Crear los archivos para comparar

Para seguir esta guía, cree un archivo llamado «archivo1» e ingrese el siguiente texto:

 10 botellas verdes parados en una pared 
 10 botellas verdes parados en una pared 
 Si una botella verde se cae accidentalmente 
 Habría 9 botellas verdes de pie en la pared 

Puede crear un archivo siguiendo estas instrucciones:

  1. Abra el archivo escribiendo el siguiente comando: nano file1

  2. Escribe el texto en el editor nano

  3. Presione CTRL y O para guardar el archivo

  4. Presione CTRL y X para salir del archivo

Ahora cree otro archivo llamado «archivo2» e ingrese el siguiente texto:

 10 botellas verdes parados en una pared 
 Si 1 botella verde cayera accidentalmente 
 Habría 9 botellas verdes de pie en la pared 

Puede crear un archivo siguiendo estas instrucciones:

  1. Abra el archivo escribiendo el siguiente comando: nano file2

  2. Escribe el texto en el editor nano

  3. Presione CTRL y O para guardar el archivo

  4. Presione CTRL y X para salir del archivo

Cómo comparar dos archivos usando Linux

El comando utilizado en Linux para mostrar las diferencias entre 2 archivos se denomina comando diff.

La forma más simple del comando diff es la siguiente:

 archivo diff1 archivo2 

Si los archivos son iguales, no habrá salida al usar este comando, sin embargo, ya que hay diferencias, verá una salida similar a la siguiente:

 2,4c2,3 
<10 botellas verdes de pie en la pared
...
> Si una botella verde cayera accidentalmente
> Habría 9 botellas verdes en la pared

Inicialmente, el resultado puede parecer confuso, pero una vez que comprende la terminología, es bastante lógico.

Puede ver que las diferencias entre los 2 archivos son las siguientes:

  • El segundo archivo solo tiene tres líneas, mientras que el primer archivo tiene 4.
  • El segundo archivo dice «1 botella verde» en la tercera línea, mientras que el primer archivo dice «una botella verde»
  • El segundo archivo dice «there’d» en lugar de «there would» en la línea final

El resultado del comando diff muestra que entre las líneas 2 y 4 del primer archivo y las líneas 2 y 3 del segundo archivo hay diferencias.

Luego enumera las líneas del 2 al 4 del primer archivo seguido de las 2 líneas diferentes en el segundo archivo.

Cómo mostrar si los archivos son diferentes

Si solo quiere saber si los archivos son diferentes y no está interesado en qué líneas son diferentes, puede ejecutar el siguiente comando:

 diff -q archivo1 archivo2 

Si los archivos son diferentes, se mostrará lo siguiente:

 Los archivos archivo1 y archivo2 difieren 

Si los archivos son iguales, no se muestra nada.

Cómo mostrar un mensaje si los archivos son iguales

Cuando ejecuta un comando, desea saber que ha funcionado correctamente, por lo que desea que se muestre un mensaje cuando ejecuta el comando diff, independientemente de si los archivos son iguales o diferentes.

Para cumplir este requisito con el comando diff, puede usar el siguiente comando:

 diff -s archivo1 archivo2 

Ahora, si los archivos son iguales, recibirá el siguiente mensaje:

 Los archivos archivo1 y archivo2 son idénticos 

Cómo producir las diferencias lado a lado

Si hay muchas diferencias, puede ser muy confuso rápidamente cuáles son las diferencias entre los dos archivos.

Puede cambiar la salida del comando diff para que los resultados se muestren uno al lado del otro. Para hacer esto, ejecute el siguiente comando:

 diff -y archivo1 archivo2 

La salida del archivo utiliza el | símbolo para mostrar una diferencia entre las dos líneas, un para mostrar una línea que se ha agregado.

Curiosamente, si ejecuta el comando utilizando nuestros archivos de demostración, todas las líneas se mostrarán como diferentes, excepto la última línea del archivo 2, que se mostrará como eliminada.

Restricción de los anchos de columna

Al comparar dos archivos uno al lado del otro, puede ser difícil de leer si los archivos tienen muchas columnas de texto.

Para restringir varias columnas, use el siguiente comando:

 diff --width = 5 archivo archivo2 

Cómo ignorar las diferencias entre mayúsculas y minúsculas al comparar archivos

Si desea comparar dos archivos pero no le importa si el caso de las letras es el mismo entre los dos archivos, puede usar el siguiente comando:

 diff -i archivo1 archivo2 

Cómo ignorar el espacio en blanco al final de una línea

Si al comparar los archivos observa un montón de diferencias y las diferencias son causadas por el espacio en blanco al final de las líneas, puede omitirlas y mostrarlas como cambios ejecutando el siguiente comando:

 diff -Z archivo1 archivo2 

Cómo ignorar todas las diferencias de espacio en blanco entre dos archivos

Si solo le interesa el texto en un archivo y no le importa si hay más espacios en uno que en el otro, puede usar el siguiente comando:

 diff -w archivo1 archivo2 

Cómo ignorar líneas en blanco al comparar dos archivos

Si no le importa que un archivo tenga líneas en blanco adicionales, puede comparar los archivos con el siguiente comando:

 diff -B archivo1 archivo2 

Resumen

Puede encontrar más información leyendo el manual del comando diff.

 hombre diff 

El comando diff se puede usar en su forma más simple para mostrarle las diferencias entre 2 archivos, pero también puede usarlo para crear un archivo diff como parte de una estrategia de parcheo como se muestra en esta guía para el comando de parche de Linux.

Otro comando que puede usar para comparar archivos es el comando cmp como se muestra en esta guía. Esto compara archivos byte por byte.

Rate article
labsfabs.com
Add a comment