Para canalizar diff de color a menos:
diff $file1 $file2 | colordiff | less -r
Para hacerlo más legible, limitándolo a una sola pantalla:
diff -uw $file1 $file2 | colordiff | less -r
Y, para que no se muestre menos si solo hay una pantalla de contenido:
diff -uw $file1 $file2 | tee /dev/stderr | colordiff | less -r -F
La -F hace que se cierre menos inmediatamente si hay menos de una pantalla con contenido, la tubería a stderr se debe a que cuando cierra menos, pierde la salida: al canalizar a stderr, obtiene salida incluso si no se muestra menos.
Una forma alternativa (y creo que mejor) es usar -X para evitar que se borre menos la pantalla:
diff -uw $file1 $file2 | colordiff | less -r -X -F
Esto funciona bien para mí, pero podría ser específico de bash. El colordiff no está incorporado, pero se instala fácilmente.
less -RM +Gg
: superuser.com/questions/64972/...