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.

Índice de contenidos

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

recetas-de-postres

Conviértete en todo un chef con las recetas de cocina de Alexa

El famoso asistente de voz de Amazon puede hacer casi de todo lo que le pidas, incluidas las recetas de cocina de Alexa. Tras cinco años de vida en España, algo más en Estados Unidos, los datos que maneja la compañía indican que muchas personas recurren a Alexa como su ayudante en la cocina, ya

videos-TikTok

TikTok vs. Google: la red social planta cara al buscador rey

Las búsquedas en Internet viven su particular Juego de Tronos. Google siempre ha estado sentado en el Trono de Hierro pero cada vez más familias están pujando por destronar al rey. Sin duda, Microsoft se ha postulado como un digno rival con su navegador Edge y la puesta en marcha de la IA en esta

Zoom-Workplace

Zoom Workplace, la plataforma de trabajo que ha ideado Zoom con base en la IA

En cuestión de cuatro años, Zoom ha pasado de ser una gran desconocida a toda una referencia en el mundo de las comunicaciones. De emerger como herramienta de videollamadas en la pandemia, hoy Zoom se ha convertido en toda una solución multiusos para la vida diaria y el trabajo, cuya culminación se ha traducido con

fusión-Orange-MásMóvil

Orange y MásMóvil: arranca el nuevo gigante de las teleco en España

Orange y MásMóvil han anunciado al fin la formación de su nueva empresa conjunta, completando así el acuerdo para fusionar sus operaciones en España. Tras años de negociación, se ha completado una operación que ha dado lugar a la creación de la mayor operadora de telecomunicaciones en España. Los accionistas de ambas compañías poseen el

Instagram-Creator-Marketplace

España, a la espera del Instagram Creator Marketplace

Instagram es una de las redes sociales de mayor impacto en la población española. Desde su irrupción, la figura del influencer ha crecido enormemente en el mundo del marketing y las marcas. La herramienta Instagram Creator Marketplace puede seguir fortaleciendo a estos prescriptores, visto el potencial que empieza a tener este servicio en Estados Unidos.