Se você tiver acesso ao GNU diff , poderá usar o --X-group-format options para obter esse efeito sem quaisquer ferramentas adicionais:
diff --old-group-format=$'\e[0;31m%<\e[0m' \
--new-group-format=$'\e[0;31m%>\e[0m' \
--unchanged-group-format=$'\e[0;32m%=\e[0m' \
file1 file2
Que usa códigos de escape de cor ANSI para obter vermelho e verde, com ANSI-C citando no shell para acessar o \e escapes.
--old-group-format e --new-group-format identificam linhas não correspondentes e inserem-nas entre códigos de redefinição vermelha e colorida usando %< e %> , enquanto --unchanged-group-format insere linhas correspondentes entre os códigos verde e de redefinição.
Você também pode usar --old-line-format (etc ), à custa de fugas de cores redundantes em todas as linhas: --old-line-format=$'\e[0;31m%L\e[0m' .

