Skip to main content

Cómo comparar dos archivos de texto usando Linux

#3 Técnicas para Montar uma Pregação de Alto Impacto - Parte 2 (Junio 2025)

#3 Técnicas para Montar uma Pregação de Alto Impacto - Parte 2 (Junio 2025)
Anonim

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 con Linux, pero sí necesita saber cómo abrir una ventana de terminal.

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

Creando los archivos para comparar

Para seguir esta guía, cree un archivo llamado "file1" e ingrese el siguiente texto:

10 botellas verdes de pie en una pared

10 botellas verdes de pie en una pared

Si una botella verde cae accidentalmente

Habría 9 botellas verdes de pie en la pared.

Puedes 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 "file2" e ingrese el siguiente texto:

10 botellas verdes de pie en una pared

Si 1 botella verde cae accidentalmente

Habría 9 botellas verdes de pie en la pared

Puedes 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 llama el comando diff.

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

diff file1 file2

Sin embargo, si los archivos son iguales, entonces no habrá salida cuando se use este comando, 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 cae accidentalmente

<Habría 9 botellas verdes de pie en la pared

> Si 1 botella verde cae accidentalmente

> Habría 9 botellas verdes de pie en la pared

Inicialmente, la salida puede parecer confusa, pero una vez que entiendes la terminología es bastante lógico.

Usando sus propios ojos, 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 "hay" en lugar de "no" 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.

Luego, enumera las líneas del 2 al 4 del primer archivo, seguidas de las 2 líneas diferentes del segundo archivo.

Cómo mostrar solo 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 file1 y file2 difieren

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

Cómo mostrar un mensaje si los archivos son iguales

Cuando ejecuta un comando, quiere saber que ha funcionado correctamente, por lo que desea 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 usar el siguiente comando :.

diff -s archivo1 archivo2

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

Los archivos file1 y file2 son idénticos

Cómo producir las diferencias lado a lado

Si hay muchas diferencias, entonces puede confundirse rápidamente en cuanto a cuáles son realmente las diferencias entre los dos archivos.

Puede cambiar la salida del comando diff para que los resultados se muestren lado a lado. Para hacer esto ejecuta el siguiente comando:

diff -y file1 file2

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

Es interesante que 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

Cuando se comparan dos archivos lado a lado, puede ser difícil de leer si los archivos tienen muchas columnas de texto.

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

diff --width = 5 archivo file2

Cómo ignorar las diferencias de caso 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 file1 file2

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

Si al comparar los archivos se nota una gran cantidad de diferencias y las diferencias son causadas por espacios en blanco al final de las líneas, puede omitirlas y aparecer como cambios al ejecutar el siguiente comando:

diff -Z file1 archivo2

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

Si solo está interesado en el texto de 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 más líneas en blanco, 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 dif

El comando diff se puede usar en su forma más simple para mostrar las diferencias entre 2 archivos, pero también se puede usar para crear un archivo diff como parte de una estrategia de parcheo como se muestra en esta guía del comando patch 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.