Los programadores, los desarrolladores web e incluso los escritores a menudo necesitan comparar diferentes versiones del mismo código o texto para realizar un seguimiento de los cambios. Una forma eficiente de hacer esto es con una herramienta diff, una aplicación que compara archivos o carpetas, muestra las diferencias entre ellos y lo ayuda a crear un nuevo archivo fusionando o parcheando sus versiones. En general, puede comparar archivos en Linux con una herramienta de línea de comandos o con una aplicación independiente.
diferencia, diferencia de color y diferencia de color
diferencia
La utilidad de línea de comandos llamada diff
es parte del paquete «diffutils» presente en los repositorios de todas las principales distribuciones de Linux. Es una herramienta simple 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á ningún resultado y puede modificar sus opciones (por ejemplo, para ignorar los espacios en blanco o las mayúsculas y minúsculas).
La sintaxis general es
diff -option filename1 filename2
Los resultados se pueden mostrar en dos columnas con -y
o --side-by-side
opción. Obtenga la lista completa de opciones de diferencias escribiendo:
El paquete “diffutils” también contiene diff3
– una herramienta que puede comparar tres archivos y fusionar tres versiones de un archivo. Se puede encontrar una gran guía para aprovechar al máximo las diferencias en el sitio web oficial.
diferencia de colores
diferencia de colores es técnicamente un «envoltorio» o un script que modifica la salida de diff coloreándolo según sus preferencias en el archivo 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 usarlo directamente escribiendo:
colordiff -options filename1.txt filename2.txt
o canalizando la salida de diff a él:
diff -u filename1.txt filename2.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 por un espacio en blanco). Wdiff puede ignorar mayúsculas y minúsculas (-i
), proporcionar estadísticas (-s
) sobre los cambios en los archivos dados y enfatizar las diferencias con el formato (-p
). También puede combinar colordiff y wdiff para obtener una descripción general codificada por colores de las diferencias de palabras entre archivos:
wdiff -n filename1.txt filename2.txt | colordiff
Tenga en cuenta que debe ingresar la ruta completa si los archivos no están en la carpeta activa. Para obtener más información sobre wdiff, visite el sitio web oficial.
Modos diferenciales en Vim y Emacs
Los editores de texto populares Vim y Emacs tienen un modo diferencial incorporado. Para activarlo en Vim, puede iniciar el programa con el vimdiff
comando y agregue 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 una mejor visión general.
Los usuarios de Emacs pueden elegir entre una extensión diff (llamada «modo principal») o Ediff, un modo un poco más avanzado que le permite cambiar de forma interactiva los archivos comparados. De manera similar a Vim, Emacs puede mostrar archivos en ventanas separadas, uno al lado del otro, y resaltar las diferencias. También puede usarlo para fusionar archivos y también funciona con archivos comprimidos.
Ambos editores de texto tienen una sintaxis relativamente compleja que requiere algo de aprendizaje, pero vale la pena ya que son muy potentes y totalmente personalizables.
Kdiff3
Kdiff3 es una interfaz gráfica para diff, lo que significa que se basa en diff y ofrece todas sus opciones. Le permite comparar dos archivos en un archivo base y fusionar, dividir y unir carpetas enteras, archivos o solo partes seleccionadas de texto. Kdiff3 se integra bien con KDE (admite los menús de servicio de Dolphin), pero funcionará en todas las distribuciones de Linux, Windows y Mac OS X. El cuadro de diálogo «Configuración -> Configurar Kdiff3» le 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 (ignore mayúsculas y minúsculas, números y espacios en blanco). Puede alternar el ajuste de línea y los números de línea para una mejor visión general y ajustar la configuración de color para marcar las diferencias.
Lo mejor de Kdiff3 es que le permite pegar texto de cualquier archivo directamente en la ventana principal, lo que elimina la necesidad de crear archivos cuando solo desea comparar texto «sobre la marcha».
Difuso
A primera vista parece sencillo, pero Diffuse es tan potente como otras herramientas de esta lista. Puede comparar un número ilimitado de archivos en una vista de lado a lado y resumir las diferencias. Puede editar archivos directamente desde Diffuse y realizar fusiones y coincidencias de línea. También admite el resaltado de sintaxis (limitado) y ofrece integración con varios sistemas de control de versiones, incluidos Git, Mercurial y Subversion, para ayudarlo a mantener los archivos sincronizados. Difuso funciona en Linux, Windows y Mac OS X.
difuminar
Esta aplicación funciona en Linux, Windows y OS X, se integra bien con Windows Explorer y ofrece paquetes de instalación para algunas distribuciones. Puede editar archivos dentro de Diffmerge, fusionar automáticamente versiones de archivos y exportar 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 al verificar si una copia de seguridad de 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 solicitará una clave de registro paga. Esto podría alejar a algunos usuarios; por suerte, pueden elegir otra herramienta de esta lista ya que todas ofrecen más o menos las mismas opciones.
fusionar
Meld empaqueta funciones de otras herramientas de diferenciación en una interfaz construida con Python. Puedes descargar la fuente y la versión de Windowsy busque el paquete en los repositorios si es usuario de Ubuntu, Fedora o SUSE. Lo bueno de Meld es que no tienes que instalarlo, solo ejecuta el ejecutable y úsalo como una aplicación portátil.
Meld admite la edición de archivos, el filtrado con expresiones regulares, la comparación y combinación de tres archivos y la comparación de dos o tres carpetas y sus contenidos, y también proporciona una visualización útil de las diferencias mediante flechas y códigos de colores. Si usa un sistema de control de versiones como Git, Mercurial o SVN, Meld puede administrar sus archivos, buscar cambios y realizar confirmaciones y actualizaciones. Meld se actualiza regularmente, por lo que podemos esperar nuevas funciones 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 herramientas de diferenciación en línea que son gratuitos y solo requieren un navegador web.
¿Utiliza una herramienta de diferencias que no está en esta lista? Cuéntanoslo en los comentarios.