La necesidad de comparar archivos en un sistema operativo Linux a menudo se pasa por alto, pero tiene un papel importante, especialmente para los administradores de sistemas Linux. Ser capaz de comparar de forma flexible dos archivos en una terminal de Linux arroja algo de luz sobre cuán único o diferente se percibe que es un conjunto de archivos.
[ También te puede interesar:Cómo unir dos archivos de texto en Linux ]
Por ejemplo, pueden existir dos archivos con las mismas propiedades y tamaño. En lugar de suponer que son idénticos, un programa de comparación de archivos de Linux aclarará este problema. Podría sorprenderse al descubrir que el factor diferenciador de los dos archivos es alguna redacción o espacio que coincide con un archivo y no lo hace con el otro.
Varios programas de Linux basados en terminales pueden ayudarnos a lograr el objetivo de este artículo, pero solo unos pocos se destacan en términos de funcionalidades dinámicas.
Creación de archivos de texto en Linux
Vamos a crear dos archivos de muestra desde la terminal de Linux. Asegúrese de ser un usuario sudoer o tener privilegios sudo en el sistema operativo Linux que está utilizando.
$ sudo nano archivo1
Completaremos este archivo con contenido aleatorio.
1 2 3 4 5 6 7 8 9 10uno dos tres cuatro cinco seis siete ocho nueve diezEste archivo contiene algunas secuencias numéricas en formato numérico y textual. Saludos, Tutor de LinuxShellTips
Vamos a crear un segundo archivo.
$ sudo nano archivo2
Completaremos este archivo con contenido ligeramente similar a archivo1 .
11 2 13 4 15 6 7 8 19 10uno dos veces tres cuatro cinco seis siete ocho nueve diezUso de diff para comparar archivos en Linux
Desde diferencia es un programa basado en terminal, usándolo genera las diferencias específicas entre dos archivos. En otras palabras, la diferencia la salida le indica los cambios que se pueden implementar en file1 para que coincida o sea idéntico a archivo2 .
Exhibición de las diferencias entre dos archivos
Implementemos el primer intento de comparar estos dos archivos:
$ diferencia archivo1 archivo2Podemos interpretar esta salida de la siguiente manera:
Si regresa al archivo1 original y archivo2 archivos que creamos anteriormente, notará que la diferencia anterior la salida del comando no muestra todo el contenido de los dos archivos. Ha omitido todas las similitudes de los dos archivos y solo muestra sus diferencias.
Descubra que dos archivos son idénticos usando Diff en Linux
Vamos a crear un tercer archivo llamado file3 .
$ sudo nano archivo3Completaremos este archivo con contenido similar al archivo 1.
1 2 3 4 5 6 7 8 9 10uno dos tres cuatro cinco seis siete ocho nueve diezEste archivo contiene algunas secuencias numéricas en formato numérico y textual. Saludos, Tutor de LinuxShellTipsUna diferencia de una sola línea La salida del comando debería poder decirnos directamente si dos archivos son idénticos.
$ diferencia -s archivo1 archivo3El uso de
-s
adicionales El argumento del comando hace posible esta salida. Sin embargo, implementarlo con dos archivos no idénticos aún generará sus diferencias.$ diferencia -s archivo1 archivo2Si está buscando una salida de una sola línea en dos archivos que sospecha que son diferentes, considere el uso del comando diff con -q opción.
$ diff -q archivo1 archivo2Los archivos archivo1 y archivo2 difierenVista alternativa de salida del comando Diff
Si necesita que la comparación de salida de sus dos archivos sea una al lado de la otra, considere implementar diff comando con
-y
opción.$ diff -y archivo1 archivo2Si desea que el comando anterior suprima o ignore las similitudes de los dos archivos, incluya
--suppress-common-lines
opción.$ diff -y --suppress-common-lines archivo1 archivo2Si está tratando con dos archivos grandes y desea limitar la salida a números de columna específicos, implementaría diff comando de la siguiente manera.
$ diferencia -y -W 50 archivo1 archivo2El comando anterior asume que los dos archivos en comparación son algo grandes y superan los 50 columnas en términos de tamaño de texto. La salida diff estará limitada a 50 columnas.