Diff, colordiff y wdiff
Diff
La utilidad de línea de comandos llamada diff forma parte del paquete «diffutils» presente en los repositorios de las principales distribuciones de Linux. Es una herramienta sencilla que compara archivos línea por línea y también puede comparar archivos en dos carpetas. Si los archivos seleccionados son idénticos, diff no imprimirá ninguna salida, y puede modificar sus opciones (por ejemplo, para ignorar el espacio en blanco o las letras mayúsculas y minúsculas).
La sintaxis general es
diff -option filename1 filename2
Los resultados se pueden mostrar en dos columnas con la opción -y o –side-by-side. Obtenga la lista completa de opciones de diferenciación escribiendo:
diff --help
El paquete «diffutils» también contiene diff3 – una herramienta que puede comparar tres archivos y fusionar tres versiones de un archivo. Una gran guía para sacar el máximo provecho de las diferencias se puede encontrar en el sitio web oficial .
Colordiff
Colordiff es técnicamente un «wrapper» o un script que modifica la salida de diff coloreándola según sus preferencias en el fichero de configuración («/etc/colordiffrc» o «/home/user/.colordiffrc»). El paquete colordiff está disponible en los repositorios de la mayoría de las distribuciones.
Colordiff tiene las mismas opciones que diff, y puede utilizarlo directamente escribiendo:
colordiff -opciones nombrearchivo1.txt nombrearchivo2.txt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
o bien canalizando la salida de diff a la misma:
diff -u nombrearchivo1.txt nombrearchivo2.txt | colordiff
Wdiff
Otra herramienta similar y un poco más especializada es wdiff que puede comparar archivos palabra por palabra (define una palabra como cualquier cosa rodeada de espacio en blanco). Wdiff puede ignorar el caso (-i), proporcionar estadísticas (-s) sobre los cambios en archivos dados, y enfatizar las diferencias con el formato (-p). También puede combinar colordiff y wdiff para obtener una visión general codificada por colores de las diferencias de palabras entre archivos:
wdiff -n nombrearchivo1.txt nombrearchivo2.txt | colordiff
Tenga en cuenta que debe introducir la ruta completa si los archivos no están en la carpeta activa. Para más información sobre la wdiff, visite el sitio web oficial .
Modos de diferenciación en Vim y Emacs
Los editores de texto más populares, Vim y Emacs, tienen un modo de diferencias incorporado. Para activarlo en Vim, puedes iniciar el programa con el comando vimdiff y añadir hasta cuatro archivos para comparar:
vimdiff file1 file2[file3[file4]]
Vim abre cada archivo en una ventana separada y resalta las diferencias. Puede configurar cómo dividir cada ventana para obtener una mejor visión general.
Los usuarios de Emacs pueden elegir entre una extensión diff (llamada «modo principal») o Ediff, un modo ligeramente más avanzado que le permite cambiar interactivamente los archivos comparados. Al igual que Vim, Emacs puede mostrar archivos en ventanas separadas, una al lado de la otra, y resaltar las diferencias. También puede utilizarlo para fusionar archivos, y también funciona con archivos comprimidos.
Ambos editores de texto tienen una sintaxis relativamente compleja que requiere cierto aprendizaje, pero vale la pena ya que son muy potentes y completamente personalizables.
Kdiff3
Kdiff3 es un frontend gráfico para diff, lo que significa que se basa en diff y ofrece todas sus opciones. Le permite comparar dos archivos con un archivo base y fusionar, dividir y unir carpetas enteras, archivos o sólo partes de texto seleccionadas. Kdiff3 se integra bien con KDE (soporta menús de servicio Dolphin), pero funcionará en todas las distribuciones de Linux, Windows y Mac OS X. El cuadro de diálogo «Ajustes -> Configurar Kdiff3» permite establecer parámetros para la comparación de archivos en carpetas (por fecha, tamaño, comparación binaria o contenido completo) y entre archivos (ignorar mayúsculas, números y espacio en blanco). Puede alternar entre el ajuste de línea y el ajuste de línea para obtener una mejor visión general y ajustar la configuración de color para marcar las diferencias.
Lo bueno de Kdiff3 es que le permite pegar texto de cualquier archivo directamente en la ventana principal, eliminando la necesidad de crear archivos cuando sólo desea comparar el texto «sobre la marcha». Un manual detallado de Kdiff3 es disponible en línea .
Difuso
A primera vista parece simple, pero Diffuse es tan poderoso como otras herramientas de esta lista. Puede comparar un número ilimitado de archivos en una vista lado a lado y resumir las diferencias. Puede editar archivos directamente desde Difundir y realizar fusiones y concordancia de líneas. También soporta el resaltado (limitado) de sintaxis y ofrece integración con varios sistemas de control de versiones – incluyendo Git, Mercurial y Subversion – para ayudarle a mantener los archivos sincronizados. Diffuse funciona en Linux, Windows y Mac OS X, y puede descargar los paquetes de instalación desde el sitio web del proyecto .
Difuminado
Esta aplicación funciona en Linux, Windows y OS X, se integra bien con el Explorador de Windows y ofrece paquetes de instalador para algunas distribuciones. Puede editar archivos dentro de Diffmerge, fusionar versiones de archivos automáticamente y exportar las diferencias a un nuevo archivo. Puede comparar hasta tres archivos y dos carpetas y mostrar si los archivos son idénticos, lo que puede ser útil cuando se comprueba si una copia de seguridad rsync se realizó correctamente.
El cuadro de diálogo de configuración le permite definir reglas personalizadas para manejar varios tipos de archivos. Diffmerge es gratuito, pero ocasionalmente le pedirá una clave de registro de pago. Por suerte, pueden elegir otra herramienta de esta lista, ya que todas ofrecen más o menos las mismas opciones.
Combinar
Combine características de otras herramientas de diferenciación en una interfaz construida por Python. Puede descargar el código fuente y la versión de Windows , y encontrar el paquete en los repositorios si es usuario de Ubuntu, Fedora o SUSE. Lo bueno de Meld es que no tienes que instalarlo – simplemente ejecuta el ejecutable y úsalo como una aplicación portátil.
Meld soporta la edición de archivos, el filtrado con expresiones regulares, la comparación y fusión de tres archivos, y la comparación de dos o tres carpetas y su contenido, y también proporciona una visualización útil de las diferencias mediante flechas y códigos de colores. Si usas un sistema de control de versiones como Git, Mercurial o SVN, Meld puede gestionar tus archivos, comprobar si hay cambios y realizar confirmaciones y actualizaciones. Meld se actualiza regularmente, así que podemos esperar nuevas características en futuras versiones.
Otras opciones
Si no tiene ganas de instalar una nueva aplicación para este propósito y no necesita funciones avanzadas de comparación de archivos, puede probar algunas de las muchas online diff tools que son gratuitas y sólo requieren un navegador web.
¿Utiliza una herramienta de diferenciación que no está en esta lista? Cuéntanoslo en los comentarios.
Crédito de la imagen: Teaser image source