Cómo comparar dos archivos de texto usando Linux

Cómo comparar dos archivos de texto usando Linux

Cómo comparar dos archivos de texto usando Linux

VALORACIÓN DEL ARTÍCULO:
5/5


Esta guía le mostrará cómo usar Linux para comparar dos archivos y dar salida a 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 enlazada, hay muchas maneras de abrir una ventana de terminal usando Linux. Lo más sencillo es pulsar las teclas CTRL, ALT y T al mismo tiempo.

Creación de los archivos para comparar

Para seguir con esta guía, cree un archivo llamado «file1» e introduzca el siguiente texto:

pre>10 botellas verdes paradas en una pared 
Si una botella verde cayera accidentalmente 
Habría 9 botellas verdes paradas en la pared 

.

Puede crear un fichero siguiendo estas instrucciones:

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

  2. Escriba 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 «file2» e introduzca el siguiente texto:

10 botellas verdes paradas en una pared

 
 Si 1 botella verde cayera accidentalmente 
Habría 9 botellas verdes paradas en la pared 

.

Puede crear un fichero siguiendo estas instrucciones:

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

  2. Escriba 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 llama diff command.

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

diff file1 file2

Si los archivos son los mismos, entonces no habrá salida cuando se utilice este comando, sin embargo, como hay diferencias, verá una salida similar a la siguiente:

Si una botella verde cayera accidentalmente en la pared

 
< Si una botella verde cayera accidentalmente 
< Habría 9 botellas verdes paradas en la pared 
 
...
 
> Si una botella verde cayera accidentalmente 
> Si una botella verde cayera accidentalmente 
> Habría 9 botellas verdes paradas en la pared Inicialmente, el resultado puede parecer confuso, pero una vez que se entiende la terminología es bastante lógico.

Usando sus propios ojos puede ver que las diferencias entre los dos archivos son las siguientes:

  • El segundo archivo sólo tiene tres líneas, mientras que el primero tiene 4.
  • El segundo archivo dice "1 botella verde" en la tercera línea, mientras que el primero dice "una botella verde"
  • .
  • El segundo archivo dice "there'd" en lugar de "there would" en la línea final

La salida 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.

A continuación, enumera las líneas del 2 al 4 del primer archivo, seguidas de las 2 líneas diferentes del segundo archivo.

Cómo mostrar si los archivos son diferentes

Si sólo quieres saber si los archivos son diferentes y no te interesan las líneas que son diferentes, puedes ejecutar el siguiente comando:

diff -q archivo1 archivo2

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

Ficheros fichero1 y fichero2 difieren

Si los archivos son los mismos, no se muestra nada.

Cómo mostrar un mensaje si los archivos son los mismos

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

.

Para lograr este requisito utilizando el comando diff, puede utilizar el siguiente comando:.

diff -s file1 file2

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

Ficheros file1 y file2 son idénticos 

Cómo producir las diferencias lado a lado

Si hay muchas diferencias, entonces puede llegar a ser muy rápidamente confuso en cuanto a 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 ello ejecute el siguiente comando:

diff -y file1 file2

La salida para el archivo usa el símbolo | para mostrar una diferencia entre las dos líneas, a < para mostrar una línea que ha sido eliminada y a> para mostrar una línea que ha sido añadida.

Es interesante que si ejecuta el comando usando 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 si hubiera sido eliminada.

Restricción de los anchos de columna

Cuando se comparan dos archivos uno al lado del otro puede ser difícil de leer si los archivos tienen muchas columnas de texto.

Para restringir un número de columnas, utilice el siguiente comando:

diff --width=5 file file2

Cómo ignorar las diferencias de casos 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, entonces puede usar el siguiente comando:

diff -i file1 file2

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

Si al comparar los archivos notas que hay un montón de diferencias y las diferencias son causadas por el espacio en blanco al final de las líneas, puedes omitirlas como si fueran cambios ejecutando el siguiente comando:

diff -Z archivo1 archivo2

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

Si sólo estás interesado en el texto de un archivo y no te importa si hay más espacios en uno que en el otro, puedes usar el siguiente comando:

diff -w archivo1 archivo2

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

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

diff -B archivo1 archivo2

Resumen

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

man diff

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

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

TAMBIÉN TE INTERESA

Amazon Warehouse

¿Buscas oportunidades? Déjate caer por Amazon Warehouse…

Si no conoces Amazon Warehouse es porque nunca has buscado bien en las entrañas de este gigante del comercio electrónico. En este departamento del marketpalce encontraremos chollos, gangas y productos rebajadas al ser reacondicionados o de segunda mano. A lo largo de estas líneas te mostraremos todos los secretos de este rincón de Amazon que

lo-nuevo-de-HP-en-el-CES-2023

Lo más destacado de HP en el CES 2023

Como si fuera una presentación de temporada de una serie de televisión, HP ha aprovechado su momento en el CES 2023, la feria más importante a nivel tecnológico en el mundo, para anunciar todo lo que se viene en este nuevo año para la compañía. Y lo hace poniendo el foco en la vida híbrida

tendencias-de-tecnología

… Más tendencias de tecnología para el nuevo año

Si bien es cierto que un post anterior hablábamos de tendencias de tecnología para 2023, lo cierto es que la información que se maneja es amplia como para detenerse solamente en cinco tendencias. A lo largo de este nuevo artículo seguiremos hablando de nuevas tecnologías que llegarán en el 2023 o bien se consolidarán. Los

tendencias-tecnológicas-2023

5 tendencias tecnológicas para 2023

Se acerca ya el final del año 2022 y, como es menester, toca hablar de lo que deparará 2023 en cuanto a tendencias tecnológicas. Trataremos tecnología en términos generales, sin centrarnos en ningún producto o marca en concreto. Sin embargo, antes de ello, echamos la mirada atrás para ver cómo ha sido la evolución del