Diff Tool para Linux en la que puedes pegar dos textos sin archivos?

Con frecuencia necesito comparar dos bloques de texto juntos sin crear un archivo para cada uno primero, y luego deseo ejecutar una diferencia entre los dos.

¿Hay alguna herramienta que pueda usar y simplemente copie y pegue ambos en búferes vacíos y luego reciba una diferencia entre los dos?

Respuestas (3)

Meld ( artículo de Wikipedia ) permite esto.

Cuando abre una nueva pestaña de diferencias ( Ctrl+ n), una ventana emergente le pide que seleccione dos (o tres) archivos. Simplemente puede presionar OKaquí, sin seleccionar nada.

Abre búferes vacíos, como en un editor de texto, lo que le permite pegar (o escribir) texto. La diferencia ocurre sobre la marcha (mientras pegas/escribes/editas el texto).

Cuando cierra la pestaña de diferencias, la herramienta le pregunta si desea guardar los archivos.

Captura de pantalla de http://meldmerge.org/features.html :

GUI de Meld, que muestra una diferencia de dos archivos, resaltando diferentes partes en rojo con fondo azul y nuevas líneas con fondo verde

Me gusta fusionar. También tiene la ventaja de ser multiplataforma (lo uso para mi desarrollo de Windows). Puede seleccionar la comparación de archivos y luego presionar "comparación en blanco" para obtener el mismo resultado si no tiene una diferencia existente en progreso
Tuve que presionar CTRL+N seguido de hacer clic en el File Comparisonbotón y luego hacer clic en Blank comparisony eso funcionó.

Otra opción es difusa: http://diffuse.sourceforge.net/index.html

Se abre en dos paneles en blanco de forma predeterminada y puede pegar lo que quiera en cada lado.

ejemplo de diferencia de dos paneles

No es necesariamente el más bonito, pero podría hacerlo con la sustitución de procesos y heredocs:

diff <(cat <<EOF1
First text
and more
EOF1) <(cat <<EOF2
Second text
and more
EOF2)

produciría la salida:

1c1
< First text
---
> Second text

y puedes poner lo que quieras en cada bloque de texto, por supuesto.

Otra opción sería usar vimcomo en las respuestas aquí

El proceso que me gustaría con ese sería hacer lo siguiente dentro de vim:

  • insertar texto en el búfer actual
  • ejecutar :diffthispara incluir esa ventana en eldiff
  • ejecutar :vnewpara obtener otra ventana dividida verticalmente para que estén una al lado de la otra
  • insertar texto de segunda fuente
  • correr:diffthis

listo, tienes tu diferencia resaltada