PK Systems
Ferramentas de texto

Comparador de Textos

Compare dois textos e veja o que mudou. Granularidade por linha ou palavra, atualização ao vivo, tudo no navegador.

Comparador de Textos

Diferenças


    

O que é um diff de texto?

Um diff (de diferença) é um relatório lado a lado do que mudou entre dois textos. O uso clássico é em controle de versão — Git, SVN e similares usam diff para mostrar o que cada commit alterou — mas a mesma ideia serve para revisar edições, comparar contratos, achar pequenas mudanças em arquivos de configuração ou conferir se um documento sobreviveu intacto a um copia-e-cola. Esta ferramenta calcula o diff usando o algoritmo da maior subsequência comum (LCS), a mesma família de técnicas que está por trás do git diff.

Como usar

Cole a versão original em A e a versão modificada em B. O diff aparece ao vivo abaixo: verde são linhas (ou palavras) adicionadas em B, vermelho são remoções de A, e o resto sem destaque ficou igual. Alterne entre granularidade por linha ou por palavra — diff por linha é melhor para código ou texto estruturado, diff por palavra é mais legível para prosa onde mudanças sutis importam. As estatísticas acima do resultado mostram contagens de tokens adicionados, removidos e iguais.

Quando usar linha ou palavra

Diff por linha é o padrão certo para código, JSON, CSV, logs e qualquer coisa onde a estrutura mora no nível da linha. Uma mudança de um caractere aparece como uma linha removida mais uma adicionada — fácil de escanear e bate com o que ferramentas de versionamento mostram. Diff por palavra brilha em prosa: destaca exatamente as palavras que mudaram dentro do parágrafo, então dá para ver as edições sem reler tudo. Evite diff por palavra em documentos muito longos — o cálculo de LCS é quadrático e fica lento acima de alguns milhares de palavras.

Perguntas frequentes

Meu texto é enviado para algum lugar?
Não. O diff inteiro é calculado no seu navegador. Você pode confirmar abrindo DevTools > Network e colando seus textos — nenhuma requisição é disparada. Isso torna a ferramenta segura para comparar conteúdo privado ou sensível, como contratos, código ou arquivos de configuração.
Como funciona o algoritmo de diff?
Monta uma tabela LCS (maior subsequência comum) entre os tokens das entradas e percorre a tabela de trás para frente para produzir um script de edição — a mesma técnica do Hunt-McIlroy usada pelo diff clássico. Para entradas muito grandes (acima de ~2.000 tokens de cada lado), a ferramenta cai num comparador posição a posição, mais rápido mas menos preciso.
Por que o resultado às vezes parece estranho?
LCS escolhe a maior subsequência comum, que é matematicamente ótimo mas pode produzir agrupamentos visuais inesperados quando há muitos tokens curtos repetidos (linhas em branco, palavras repetidas). Se ver agrupamento esquisito, troque a granularidade — diff por linha e por palavra desempatam diferente e quase sempre uma das duas fica mais natural.
E os espaços em branco?
Espaço em branco conta. Espaços no fim de linha, mudança de indentação e quebras CRLF versus LF aparecem como diferenças. Se só interessam mudanças reais, normalize os dois textos antes (tirar espaço sobrando, padronizar tabs e espaços, unificar quebra de linha).
Dá para exportar o diff?
Ainda não como patch unified-diff — esta ferramenta foca na comparação visual lado a lado. Para exportar um patch em formato unified, rode diff -u a.txt b.txt no terminal ou use git diff --no-index a.txt b.txt para uma saída mais rica, igual à que aparece no GitHub.
Por que quebras de linha às vezes aparecem como diferença?
Sistemas operacionais diferentes usam convenções diferentes: Windows historicamente usa \r\n (CRLF); Unix e macOS usam \n (LF). Quando texto é copiado entre sistemas, as quebras se misturam e o diff trata linha\r e linha como diferentes. Passe o texto por um dos2unix ou um editor de texto que normalize as quebras antes de comparar.