Linux usando el comando diff para comparar archivos

  
                

Si necesita comparar el contenido del archivo del sistema, entonces usará el comando diff para encontrar la misma parte entre los archivos. La siguiente pequeña serie le dará una introducción detallada al uso del comando diff de Linux.

comando diff en Linux es una herramienta muy importante para comparar el contenido del archivo, en particular, para comparar dos versiones diferentes de archivos para encontrar los cambios en el lugar. Diff imprime los cambios en cada línea en la línea de comando. La última versión de diff también soporta archivos binarios. La salida del programa diff se llama un parche, porque hay un programa de parches en el sistema Linux que puede actualizar el contenido de un archivo a.c a b.c de acuerdo con la salida de diff. Diff es una parte integral de las herramientas de control de versiones como svn, cvs y git.

1. Formato del comando:

diff [parámetro] [archivo 1 o directorio 1] [archivo 2 o directorio 2]

2. Función de comando:

El comando diff puede comparar el contenido de un solo archivo o directorio. Si especifica un archivo de comparación, solo será válido si la entrada es un archivo de texto. Compare las similitudes y diferencias de los archivos de texto en una línea por línea. Si especifica una comparación con un directorio, el comando diff compara los archivos de texto con el mismo nombre en ambos directorios. Enumere diferentes binarios, subdirectorios comunes y archivos que aparecen solo en un directorio.

3. Parámetros de comando:

: especifica cuántas líneas de texto se mostrarán. Este parámetro se debe utilizar junto con los parámetros -c o -u.

-a o - los ajustes preestablecidos de diferencia de texto solo compararán archivos de texto línea por línea.

-b o --ignore-space-change no comprueba las diferencias en los caracteres de espacio.

-B o --ignore-blank-lines No compruebe si hay líneas en blanco.

-c Muestra todo el texto y marca las diferencias.

-C o --context es lo mismo que ejecutar el comando "-c- "".

-d o --minimal Use un algoritmo diferente para comparar en unidades más pequeñas.

-D o ifdef El formato de salida de este parámetro se puede usar para la macro del preprocesador.

-e or --ed El formato de salida de este parámetro se puede usar para archivos de script ed.

-f o -forward-ed El formato de salida es similar al archivo de script ed, pero las diferencias se muestran en el orden de los archivos originales.

-H o --speed-large-files Acelera cuando se comparan archivos grandes.

-l o --ignore-matching-lines Si dos archivos difieren en unas pocas líneas, y estas líneas contienen tanto los caracteres como las cadenas especificadas en las opciones, no se muestran. La diferencia entre los archivos.

-i o --ignore-case no comprueba las diferencias de casos.

-l o --paginate El resultado se pasa al programa pr para la paginación.

-n o --rcs Los resultados de la comparación se muestran en formato RCS.

-N o --new-file Al comparar directorios, si el archivo A solo aparece en un directorio, se mostrará el valor predeterminado: Solo en el directorio: si el archivo A usa el parámetro -N, entonces diff Compare el archivo A con un archivo en blanco.

-p Si el archivo que se compara es un archivo de código C, se muestra el nombre de la función de la diferencia.

-P o --unidirectional-new-file es similar a -N, pero solo cuando el segundo directorio contiene un archivo que no está en el primer directorio, este archivo estará en blanco con el archivo. Comparar

-q o --brief solo muestra la diferencia, no se muestra información detallada.

-r o --recursive Compara archivos en subdirectorios.

-s o --informar-archivos-idénticos Si no se encuentran diferencias, el mensaje aún se muestra.

-S o --starting-file Al comparar directorios, comience comparaciones desde el archivo especificado.

-t o --expand-tabs Expande el carácter de la pestaña en la salida.

-T o --initial-tab Agrega un carácter de tabulación delante de cada línea para la alineación.

-u, -U o --unified = Muestra la diferencia en el contenido del archivo de forma combinada.

-v o --version muestra información de la versión.

-w o --ignore-all-space ignora todos los caracteres de espacio en blanco.

-W o --width Especifique el ancho de la columna al usar el parámetro -y.

-x o --exclude no compara los archivos o directorios especificados en las opciones.

-X o --exclude-from Puede guardar un archivo o tipo de directorio como un archivo de texto y luego especificar este archivo de texto en =.

-y o - side-by-side muestra las similitudes y diferencias de los archivos de manera paralela.

--help Muestra ayuda.

--left-column Cuando se usa el parámetro -y, si el contenido de una línea de los dos archivos es el mismo, el contenido de la línea se muestra solo en el campo de la izquierda.

--suppress-common-lines Al usar el parámetro -y, solo se muestran las diferencias.

4. Ejemplo:

Ejemplo 1: Comparación de dos archivos

El código es el siguiente:

[root @ localhost test3] # diff log2014.log log2013.log

3c3

2014-03

---

2013-03

8c8

2013-07

---

》 2013-08

11,12d10

2013-11

2013-12

Descripción: Los "3c3" y "8c8" anteriores indican que los archivos log2014.log y log20143log difieren en las líneas 3 y 8; "11, 12d10" indica que el primer archivo es el segundo. Más líneas 11 y 12.

Hay tres consejos para el formato de visualización normal de diff:

El código es el siguiente:

a - agregar

c - cambiar

d - Eliminar

Instancia 2: salida de formato en paralelo

Comando: diff log2013.log log2014.log -y -W 50

Salida:

El código es el siguiente:

[root @ localhost test3] # diff log2014.log log2013.log -y -W 50

2013-01 2013-01

2013-02 2013-02 < Br>

2014-03

Copyright © Conocimiento de Windows All Rights Reserved