Software GUI Para Comparar Dois Arquivos, Obtenha Exportação “Limpa” de Diferenças?

3

Existe uma maneira de fazer uma exportação "limpa" das diferenças entre os arquivos? Não é um diff, ou mesmo um relatório formatado ... apenas uma exportação limpa de .CSV / .XLS / etc.

Isto é para pessoas que não são técnicas; nós temos um número de pessoas não técnicas em nossa empresa que poderiam realmente usar algo assim. Eles trabalham com listas de discussão e precisam extrair as alterações entre as revisões da lista.

Como programador, eu sei que há um grande número de ferramentas diff por aí: WinDiff, BeyondCompare, FileMerge, diff de linha de comando, etc. Mas eu não consegui encontrar uma que fornecesse uma exportação limpa de as diferenças. (É possível que eu tenha perdido algo em uma das ferramentas diff conhecidas que listei)

Exemplo ...

FileA.csv

1000, Aaron
1001, Bob
1002, Chris
1004, Erin

FileB.csv

1000, Aaron
1001, Bob
1002, Chris
1003, Dolores
1004, Edward

Gostaríamos de exportar apenas as linhas alteradas para ... "ChangesInFileB.csv"

1003, Dolores
1004, Edward

FWIW, os caras do suporte da Beyond Compare dizem que não oferecem isso. link

Esta questão é superficialmente semelhante, mas não aborda a questão da "exportação limpa" link

    
por John Rose 27.12.2011 / 19:21

1 resposta

2

Você pode usar a ferramenta padrão diff com alguns scripts.

Para os dois arquivos de exemplo, diff puro será exibido:

4c4,6
< 1004, Erin
---
> 1003, Dolores
> 1004, Edward

O < significa "linha removida", a linha > "adicionada". Basta filtrar por > para obter todas as linhas que estão no segundo arquivo, mas não no primeiro:

$ diff a.csv b.csv |grep '>'|cut -c 3-
1003, Dolores
1004, Edward

(a parte cut filtra o primeiro > ). Você poderia colocar isso em um script.

Observação: o acima pressupõe que você tem diff , grep & cut instalado. Eles são padrão no Linux e no Mac OS X (eu acredito); para o Windows, você precisaria do Cygwin ou similar.

    
por 09.02.2012 / 11:24