Usando diff
Isso funciona para mim. Parece ser um problema com sua versão específica de diff
?
Exemplo
$ echo "123" | diff <(echo "123") -
$
Minha versão
$ diff --version
diff (GNU diffutils) 3.3
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Paul Eggert, Mike Haertel, David Hayes,
Richard Stallman, and Len Tower.
Você também pode tentar este formulário alternativo:
$ diff <(echo "123") <(echo "123")
$
Mas de qualquer forma, deve informar que eles são idênticos.
E o colordiff?
Bem, este método mostra que são os mesmos.
$ colordiff <(echo "123") <(echo "123")
$
No entanto, como você indicou echo
, de fato, relate essas duas cadeias de caracteres como sendo diferentes:
$ echo "123" | colordiff <(echo "123") -
1d0
< 123
Mas perceba que colordiff
é realmente apenas um wrapper de script Perl em torno do GNU diff.
$ head /usr/bin/colordiff
#!/usr/bin/perl -w
########################################################################
# #
# ColorDiff - a wrapper/replacment for 'diff' producing #
# colourful output #
# #
# Copyright (C)2002-2012 Dave Ewart (davee@sungate.co.uk) #
# #
########################################################################
Como é um script Perl, você pode executá-lo através do depurador Perl para ver o que está acontecendo:
$ echo "123" | perl -d /usr/bin/colordiff <(echo "123") -
Eu acho que a conclusão aqui é que colordiff
não está equipado para receber entradas via STDIN ( -
), ele foi projetado apenas para receber entradas de arquivos.
Pesquisando, existem vários erros arquivados em relação à falta desse recurso:
Ramo de desenvolvimento do colordiff
Encontrei isso no github, kimmel / colordiff . Parece ser uma versão mais recente que lida melhor com o STDIN, na minha breve olhada na fonte.
Formas alternativas que funcionam
Você pode usar diff
para gerar diferenças e canalizar a saída colordiff
posteriormente.
$ echo "123" | diff -u <(echo "123") - | colordiff
Encontrei isso no fork / branch do daveewart colordiff
, disponível aqui no github . Há um número bastante grande de outras formas que você pode chamar colordiff
, talvez uma delas atenda às suas necessidades.
diff <(echo "123") <(echo "123")