Las 9 mejores herramientas de comparación y diferencia (Diff) de archivos para Linux


Al escribir archivos de programa o archivos de texto normales, los programadores y escritores a veces quieren saber la diferencia entre dos archivos o dos versiones del mismo archivo. Cuando compara dos archivos de computadora en Linux, la diferencia entre sus contenidos se llama diff. Esta descripción nació de una referencia a la salida de diff, la conocida utilidad de comparación de archivos de línea de comandos de Unix.

Hay varias herramientas de comparación de archivos que puede usar en Linux, y en esta revisión, veremos algunas de las mejores herramientas de diferenciación GUI y basadas en terminales que puede aprovechar al escribir código u otros archivos de texto.

1. Comando diff

Me gusta comenzar con la herramienta de línea de comandos original de Unix que muestra la diferencia entre dos archivos de computadora. Diff es simple y fácil de usar, viene preinstalado en la mayoría de las distribuciones de Linux. Compara los archivos línea por línea y muestra la diferencia entre ellos.

Puede consultar la entrada manual de diff para usarla fácilmente.

# man diff

Hay algunos contenedores para la herramienta de diferencias que mejoran su funcionalidad y estos incluyen:

Colordiff es un script de Perl que produce la misma salida que diff, pero con resaltado de color y sintaxis. Tiene esquemas de color personalizables.

Puede instalar Colordiff en sus sistemas Linux, utilizando las herramientas predeterminadas del administrador de paquetes llamadas apt-get como se muestra.

# yum install colordiff             [On CentOS/RHEL/Fedora]
# dnf install colordiff             [On Fedora 23+ version]
$ sudo apt-get install colordiff    [On Debian/Ubuntu/Mint]

Puede consultar la entrada manual para Colordiff como se muestra.

# man colordiff

La utilidad wdiff es un comando de front-end a diff que se utiliza para comparar archivos palabra por palabra. Este programa es muy útil cuando se comparan dos textos en busca de palabras modificadas y cuyos párrafos se han rellenado.

Para instalar wdiff en sus sistemas Linux, ejecute:

# yum install wdiff             [On CentOS/RHEL/Fedora]
# dnf install wdiff             [On Fedora 23+ version]
$ sudo apt-get install wdiff    [On Debian/Ubuntu/Mint]

Use el manual de wdiff para saber cómo usarlo en Linux.

# man wdiff

2. Comando Vimdiff

Vimdiff funciona de manera avanzada en comparación con la utilidad diff. Permite a un usuario editar hasta cuatro versiones de un archivo mientras muestra sus diferencias. Cuando lo ejecuta, Vimdiff abre dos, tres o cuatro archivos usando el editor de texto vim.

Visite la página de inicio: http://vimdoc.sourceforge.net/htmldoc/diff.html

Después de haber examinado las herramientas de diferencias de la vieja escuela, pasemos rápidamente a algunas herramientas de diferencias de GUI disponibles en Linux.

3. Kompare

Kompare es un contenedor de GUI de diferencias que permite a los usuarios ver las diferencias entre los archivos y también fusionarlos.

Algunas de sus características incluyen:

  1. Admite varios formatos de diferencias
  2. Admite la comparación de directorios
  3. Admite la lectura de archivos diff
  4. Interfaz personalizable
  5. Crear y aplicar parches a los archivos de origen

Visite la página de inicio: https://www.kde.org/applications/development/kompare/

4. DiffMerge

DiffMerge es una aplicación GUI multiplataforma para comparar y fusionar archivos. Tiene dos motores de funcionalidad, el motor Diff que muestra la diferencia entre dos archivos, que admite el resaltado y edición dentro de la línea y un motor Merge que genera las líneas cambiadas entre tres archivos.

Tiene las siguientes características:

  1. Admite la comparación de directorios
  2. Integración del explorador de archivos
  3. Altamente configurable

Visite la página de inicio: https://sourcegear.com/diffmerge/

5. Meld - Herramienta de diferenciación

Meld es una herramienta ligera de combinación y diferenciación de GUI. Permite a los usuarios comparar archivos, directorios y programas controlados por versiones. Construido específicamente para desarrolladores, viene con las siguientes características:

  1. Comparación bidireccional y tripartita de archivos y directorios
  2. Actualización de la comparación de archivos a medida que los usuarios escriben más palabras
  3. Facilita las fusiones mediante el modo de fusión automática y las acciones en los bloques modificados
  4. Comparaciones sencillas mediante visualizaciones
  5. Compatible con Git, Mercurial, Subversion, Bazaar y muchos más

Visite la página de inicio: http://meldmerge.org/

6. Difusa - Herramienta de diferenciación de GUI

Diffuse es otra herramienta de combinación y diferenciación de GUI popular, gratuita, pequeña y sencilla que puede utilizar en Linux. Escrito en Python, ofrece dos funcionalidades principales, es decir: comparación de archivos y control de versiones, lo que permite editar archivos, fusionar archivos y también generar la diferencia entre archivos.

Puede ver un resumen de comparación, seleccionar líneas de texto en archivos con el puntero del mouse, hacer coincidir líneas en archivos adyacentes y editar archivos diferentes. Otras características incluyen:

  1. Resaltado de sintaxis
  2. Atajos de teclado para una navegación sencilla
  3. Admite deshacer ilimitadamente
  4. Compatibilidad con Unicode
  5. Admite Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK y Monotone

Visite la página de inicio: http://diffuse.sourceforge.net/

7. XXdiff - Herramienta de combinación y diferenciación

XXdiff es una herramienta de combinación y comparación de archivos y directorios potente y gratuita que se ejecuta en sistemas operativos tipo Unix como Linux, Solaris, HP/UX, IRIX, DEC Tru64. Una limitación de XXdiff es su falta de soporte para archivos Unicode y edición en línea de archivos diff.

Tiene la siguiente lista de características:

  1. Comparación superficial y recursiva de dos, tres archivos o dos directorios
  2. Resaltado de diferencias horizontales
  3. Fusión interactiva de archivos y guardado de la salida resultante
  4. Admite revisiones/vigilancia de fusiones
  5. Admite herramientas de diferencias externas como GNU diff, SIG diff, Cleareddiff y muchas más
  6. Extensible mediante secuencias de comandos
  7. Totalmente personalizable mediante el archivo de recursos y muchas otras funciones menores

Visite la página de inicio: http://furius.ca/xxdiff/

8. KDiff3 - - Herramienta de combinación y diferenciación

KDiff3 es otra herramienta genial de combinación y diferenciación multiplataforma hecha de KDevelop. Funciona en todas las plataformas similares a Unix, incluidas Linux y Mac OS X, Windows.

Puede comparar o fusionar dos o tres archivos o directorios y tiene las siguientes características notables:

  1. Indica diferencias línea a línea y carácter a carácter
  2. Admite la combinación automática
  3. Editor incorporado para lidiar con conflictos de fusión
  4. Admite Unicode, UTF-8 y muchos otros códecs
  5. Permite la impresión de diferencias
  6. Compatibilidad con la integración del explorador de Windows
  7. También admite la detección automática mediante la marca de orden de bytes "BOM"
  8. Admite la alineación manual de líneas
  9. GUI intuitiva y muchas más

Visite la página de inicio: http://kdiff3.sourceforge.net/

9. TkDiff

TkDiff también es un contenedor de GUI multiplataforma y fácil de usar para la herramienta de diferencias de Unix. Proporciona una vista en paralelo de las diferencias entre dos archivos de entrada. Puede ejecutarse en Linux, Windows y Mac OS X.

Además, tiene algunas otras características interesantes que incluyen marcadores de diferencias, un mapa gráfico de diferencias para una navegación fácil y rápida y muchas más.

Visite la página de inicio: https://sourceforge.net/projects/tkdiff/

Después de leer esta revisión de algunas de las mejores herramientas de combinación y comparación de archivos y directorios, probablemente desee probar algunas de ellas. Es posible que estas no sean las únicas herramientas de diferenciación disponibles que puede encontrar en Linux, pero se sabe que ofrecen algunas de las mejores características, es posible que también desee informarnos de cualquier otra herramienta de diferenciación que haya probado y que crea que merece ser mencionado entre los mejores.