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
- Cómo comparar dos archivos usando Linux
- Cómo mostrar si los archivos son diferentes
- Cómo mostrar un mensaje si los archivos son iguales
- Cómo producir las diferencias lado a lado
- Restricción de los anchos de columna
- Cómo ignorar las diferencias entre mayúsculas y minúsculas al comparar archivos
- Cómo ignorar el espacio en blanco al final de una línea
- Cómo ignorar todas las diferencias de espacio en blanco entre dos archivos
- Cómo ignorar líneas en blanco al comparar dos archivos
- Resumen
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:
-
Abra el archivo escribiendo el siguiente comando: nano file1
-
Escribe el texto en el editor nano
-
Presione CTRL y O para guardar el archivo
-
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:
-
Abra el archivo escribiendo el siguiente comando: nano file2
-
Escribe el texto en el editor nano
-
Presione CTRL y O para guardar el archivo
-
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
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.