entre - comando diff solo diferencias
Mostrando diferencias dentro de una lĂnea en salida dif. (5)
Es posible que pueda utilizar colordiff
para esto.
En su página de manual :
Todas las opciones pasadas a colordiff se pasan a diff excepto la opción ''difftype'' específica de colordiff, por ejemplo
colordiff --difftype=debdiff file1 file2
Los valores válidos para ''difftype'' son: diff, diffc, diffu, diffy, wdiff, debdiff; estos corresponden a diferencias planas, diferencias de contexto, diferencias unificadas, diferencias lado a lado, salida wdiff y salida debdiff respectivamente. Utilice estas anulaciones cuando Colordiff no pueda determinar el tipo de diff automáticamente.
No lo he probado, pero la salida en paralelo (según lo producido por diff -y file1 file2
) puede darle el equivalente a las diferencias en línea.
Esta respuesta de StackOverflow tiene una imagen de KDiff3 que destaca las diferencias dentro de la línea. ¿Alguien sabe de una herramienta que pueda mostrar lo mismo (por ejemplo, a través del color) en la línea de comandos?
Otra forma de pensar esto es querer diferenciar cada diferencia en un archivo de parche.
No sé si esto es una línea de comando suficiente para su propósito, pero vimdiff puede hacer esto (incluso hace color). Vea por ejemplo la imagen en esta pregunta relacionada .
Otra forma intuitiva de ver todas las diferencias en el tamaño de las palabras (aunque no de lado a lado) es usar wdiff
junto con colordiff
(es posible que necesite instalar ambos). Un ejemplo de esto sería:
wdiff -n {file-A} {file-A} | colordiff
Opcionalmente, puede canalizar esto en less -R
para desplazarse por la salida ( -R
se utiliza para mostrar los colores en less
).
Tuve un problema similar y quería evitar el uso de vimdiff
. Descubrí que dwdiff
(que está disponible en Debian) tiene varias ventajas sobre wdiff
.
La característica más útil de dwdiff
es que puede personalizar los delimitadores con -d [CHARS]
, por lo que es útil para comparar todo tipo de resultados. También tiene color incorporado con la bandera -c
.
Probé todas las herramientas que encontré: wdiff, dwdiff, kdiff3, vimdiff para mostrar la diferencia entre dos líneas largas y ligeramente diferentes. Mi favorito es diff-highlight
(parte de git contrib)
- es compatible con el formato diff - una gran ventaja sobre las herramientas que requieren dos archivos como (dwdiff), por ejemplo, si necesita visualizar el resultado de las pruebas unitarias
- se resalta con negro + blanco o con color si lo conecta a Colordiff
- aspectos destacados en los caracteres: útil para comparar líneas largas sin espacios (mejor que wdiff)
Instalación
En Ubuntu, probablemente ya lo tengas como parte de git contrib (instalado dentro del paquete git
deb). Cópielo o vincúlelo a su carpeta ~ / bin desde /usr/share/doc/git/contrib/diff-highlight/diff-highlight
Ejemplo de uso
cat tmp.diff | diff-highlight | colordiff
Resultado: