Crear diff entre dos archivos en Linux

Crear diff entre dos archivos en Linux
Este artículo enumerará utilidades útiles de línea de comando y aplicaciones gráficas que le permiten ver "diff" o "diferencia" entre dos cadenas o dos archivos. Estas aplicaciones son especialmente útiles si desea comparar múltiples versiones de un mismo archivo para revisar su progreso o volver al contenido anterior en caso de que desee reutilizar los datos anteriores almacenados en el archivo. Los desarrolladores de software utilizan algún tipo de sistema de control de versiones regularmente utilizan herramientas de diferencia para comparar el código.

Comando GREP

GREP es una herramienta de línea de comando que se usa más comúnmente para encontrar y hacer coincidir el contenido de texto utilizando patrones. Puede usar patrones GREP en una variedad de formas de analizar datos de texto y obtener coincidencias. Uno de esos patrones GREP le permite ver la diferencia entre dos archivos. Suponiendo que hay dos archivos "file1" que contienen 1 a 5 números en cada línea y "file2" que contienen 1 a 10 números en cada línea, puede usar el siguiente comando GREP para ver la diferencia entre estos archivos:

$ grep -fxvf file1 file2

Después de ejecutar el comando indicado anteriormente, debe obtener la siguiente salida:

6
7
8
9
10

El conmutador "F" en el comando anterior considera los datos de texto como una lista de cadenas fijas, cada una de ellas separada por una ruptura de línea o una nueva línea. El interruptor "X" coincide solo con líneas completas. El interruptor "V" se usa para obtener coincidencias inversas. Puede usarlo para seleccionar líneas no coincidentes. El interruptor "F" se usa para obtener patrones de un archivo, cada patrón es una nueva línea. Tenga en cuenta que el orden de los argumentos es importante cuando usa el comando DIFF indicado anteriormente. Encuentra aquellas líneas que existen en "file2" pero no existen en "file1". Intente ejecutar el comando a continuación invirtiendo el orden de archivo, no obtendrá salida:

$ GREP -FXVF File2 File1

Esto se debe a que "file1" no tiene ninguna línea diferente de "file2". El comando GREP está disponible de forma predeterminada en todas las principales distribuciones de Linux. Para obtener más información sobre el comando GREP, use los siguientes dos comandos:

$ hombre grep
$ Grep --help

Comando diff

DIFF es una utilidad de línea de comando de comando que se puede usar para comparar archivos line por línea. Su salida sugiere líneas que debían agregar o eliminar para que coincidan con ambos archivos entre sí. Usando los mismos archivos mencionados en el ejemplo anterior, ejecute el siguiente comando:

$ DIFF FILE2 FILE1

Debe obtener la siguiente salida:

6,10d5
< 6
< 7
< 8
< 9
< 10

La salida le indica que para que coincida con "file2" con file1, debe eliminar ("d") todas las líneas que comienzan desde la sexta línea con la décima línea para que coincida con el segundo archivo hasta la 5ta línea del primer archivo. Intente invertir el comando:

$ diff file1 file2

Debe obtener la siguiente salida:

5A6,10
> 6
> 7
> 8
> 9
> 10

La salida le indica que después de la quinta línea, agregue ("A") de 6 a 10 líneas con "File1" para que coincida con "File2". También puede hacer una comparación de lado a lado utilizando el interruptor "y".

El comando DIFF está disponible de forma predeterminada en la mayoría de las distribuciones de Linux. Para obtener más información, puede ejecutar estos dos comandos:

$ hombre diff
$ diff --help

Fustrar

MELD es una aplicación gráfica que se puede utilizar para encontrar diferencia entre dos o más archivos y fusionar cambios al mismo tiempo. También se puede utilizar para comparar recursivamente archivos en un directorio, incluidas las carpetas bajo el control de la versión. MELD indica visualmente qué cambios deben realizarse para que coincidan con dos archivos que se comparan. También puede mostrar DIFF en tiempo real a medida que continúa editando uno o ambos archivos.

Para instalar MELD en Ubuntu, use el comando especificado a continuación:

$ sudo apt instalación fusil

MELD está disponible en repositorios predeterminados de la mayoría de las distribuciones de Linux, por lo que puede descargarla desde el administrador de paquetes. También puede obtener más paquetes y código fuente de su página de inicio.

Kompara

Kompare es una aplicación de código libre y de código abierto que se puede utilizar para crear diff entre dos archivos y fusionar cambios para que coincidan con sus contenidos. Desarrollado por el equipo de KDE, también se puede utilizar para analizar recursivamente directorios para comparar las diferencias entre los archivos. KomPare indica visualmente Diff entre dos archivos y también puede usarlo para crear y aplicar parches.

Para instalar Kompare en Ubuntu, use el comando especificado a continuación:

$ sudo apt instalación kompare

Kompare está disponible en repositorios predeterminados de la mayoría de las distribuciones de Linux, por lo que puede descargarlo desde el Administrador de paquetes. Puede obtener más paquetes y código fuente de su página web. Un paquete Snap también está disponible aquí.

Comando Git Diff

Git es uno de los sistemas de control de versiones distribuidos más utilizados y populares. Viene con muchas utilidades de línea de comandos, incluido un comando "Diff" que se puede usar para comparar dos archivos. Puede usar este comando para comparar dos archivos ampliamente, incluso si no está utilizando el control de versiones de GIT y viene con numerosas opciones de línea de comandos para ajustar el comportamiento de los algoritmos DIFF. En su forma más simple, puede ejecutar este comando para comparar dos archivos:

$ git diff file1 file2

La salida coloreada con el signo "+" muestra líneas adicionales disponibles en "File2". Para instalar Git y Git Diff en Ubuntu, use el comando especificado a continuación:

$ sudo apt install git

Git Diff es parte del paquete GIT y está disponible en repositorios predeterminados de la mayoría de las distribuciones de Linux, por lo que puede descargarlo desde el Administrador de paquetes. Para obtener más información sobre Git Diff, use los siguientes dos comandos:

$ hombre git diff
$ git diff --help

Kdiff3

KDIFF3 es otra herramienta GUI Diff creada por el equipo de KDE. Viene con todas las campanas y silbatos que esperarías de una herramienta de diferencia. Puede comparar archivos y directorios y fusionar automáticamente los cambios si se elige así. También viene con un editor incorporado e indica visualmente qué cambios deben realizarse para que coincidan con los archivos y eliminen las diferencias.


(Fuente de imagen)

Para instalar KDIFF3 en Ubuntu, use el comando especificado a continuación:

$ sudo apt install kdiff3

KDIFF3 está disponible en repositorios predeterminados de la mayoría de las distribuciones de Linux, por lo que puede descargarlo desde el Administrador de paquetes. Puede obtener más paquetes y código fuente de su página web.

Conclusión

Estas son algunas de las utilidades de comandos y utilidades gráficas más útiles que se pueden usar para comparar múltiples archivos. Estas herramientas Diff proporcionan una buena manera de rastrear los cambios de archivos, fusionar diferencias y crear parches. También puede usarlos para revertir manualmente los archivos a su estado anterior si es necesario.