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

dni en el móvil

Oficial: ya es posible llevar tu DNI en el móvil en España

Teníamos tarjetas bancarias, de salud, tarjetas para el transporte… pero faltaba lo más importante: el Documento Nacional de Identidad. Bueno pues desde ya es posible tener el DNI en el móvil en España. El Consejo de Ministros ha aprobado un real decreto que marca un antes y un después en la forma de acreditar la

vivo v50 Lite

Asequible y muy fino en todos los sentidos: sale a la venta el vivo v50 Lite

La marca vivo, de la cual hemos hablado recientemente por su estrategia a futuro con la robótica e IA, ha dado un nuevo paso adelante en la evolución de los smartphones con el lanzamiento del vivo V50 Lite en España. Este dispositivo combina un diseño sofisticado, potencia de alto rendimiento y resistencia excepcional, adaptándose a

estafas con criptomonedas

Estafas con criptomonedas: cómo no caer en ellas

Para bien o para mal, el sector de las criptomonedas ocupa asiduamente titulares en toda la prensa mundial. Y últimamente, las noticias giran en torno a la seguridad, así que no está de más recordar claves o consejos para evitar estafas con criptomonedas. Han pasado ya algunas semanas, pero conviene señalar dos recientes sucesos que

marca vivo

La marca vivo atisba un futuro con robots en nuestras casas

La industria tecnológica avanza a pasos agigantados, y en este escenario, la marca vivo se está postulando desde China como uno de los actores clave en la innovación digital. Durante la Conferencia Anual Boao Forum 2025 for Asia, celebrada en Boao, Hainan, la compañía ha presentado su nueva visión del futuro, marcada por la convergencia