quarta-feira, 24 de novembro de 2010

diff - como exibir somente as linhas alteradas

Precisei do comando diff para comparar o arquivo origem.txt e destino.txt. Porém, precisava que o comando só me retornasse as linhas novas do arquivo origem.txt (linhas que existem em origem.txt e não existem em destino.txt). Pesquisando na internet não consegui achar algo que fazia exatamente o que queria, todos faziam pipe com outros comandos. Pelo man, consegui achar, mas não foi fácil. Por isso, estou colocando a solução que encontrei aqui:

diff --old-line-format=%L --unchanged-line-format= origem.txt destino.txt

"--old-line-format=%L" diz que quero exibir todas as linhas do arquivo old (origem.txt)
"--unchanged-line-format=" diz que quero exibir vazio em todas as linhas não alteradas.

Exemplo:
[origem.txt]
aaa
bbb
ccc
eee
fff

[destino.txt]
aaa
bbb
ccc

Ao executar o comando, o seguinte resultado será impresso:
eee
fff

Nenhum comentário: