Pular para o conteúdo
GeraTexto
Análise de Texto 4.91 · 1.487 avaliações

Comparar Textos — diff visual linha por linha

Compare dois textos lado a lado e veja o diff colorido — linhas adicionadas em verde, removidas em vermelho. Algoritmo LCS clássico.

O que o diff mostra

Compare dois textos cole-and-cole. As linhas são exibidas em três estados:

  • Verde (+): linha presente apenas no texto modificado
  • Vermelho (−): linha presente apenas no original
  • Cinza: linha inalterada (presente nos dois)

Algoritmo: LCS (Longest Common Subsequence)

Mesma técnica que o diff do Unix e o git diff usam — encontra a maior sequência de linhas comuns aos dois textos e marca o resto como adicionado/removido. Garante o "menor diff" possível em número de operações.

Casos de uso

  • Revisão de código: ver mudanças entre versões
  • Comparar contratos: identificar alterações em termos
  • Validar exportações: dois CSVs/JSONs deveriam ser iguais
  • Debug de logs: o que mudou entre execuções
  • Detectar copy-paste: comparar trechos suspeitos

Diff por linha (não por palavra)

Esta versão compara linha por linha. Para diff mais granular (palavra ou caractere dentro de linha), ferramentas especializadas como jsdiff ou diff-match-patch são necessárias. Pra maioria dos casos práticos (código, configs, listas), line-based é suficiente e mais legível.

Performance

Algoritmo é O(m×n) — para textos de até alguns milhares de linhas é instantâneo. Acima disso pode ficar lento; nesse caso, divida o texto em blocos menores.

Privacidade

Comparação 100% local. Nenhum texto é enviado pra servidor.

Perguntas frequentes

Qual algoritmo é usado?

LCS (Longest Common Subsequence) — clássico em ciência da computação, base de ferramentas como diff do Unix e git diff. Encontra a maior subsequência comum entre dois textos e marca o resto como adicionado/removido.

Compara linha por linha ou caractere por caractere?

Linha por linha (line-based). Útil para código, configs, listas, parágrafos curtos. Para diff de caractere/palavra dentro de uma linha, ferramentas mais sofisticadas (jsdiff, dmp) seriam necessárias.

Para que serve diff?

Casos comuns: revisar mudanças em código antes de commit, comparar versões de contrato/termo, encontrar diferenças em logs, validar duas exportações de dados, debugar copy-paste com perdas.

Funciona com texto grande?

Performance é O(m×n) onde m,n são tamanhos das listas de linhas. Para textos com milhares de linhas pode ficar lento. Otimizações (Myers diff) seriam necessárias para escala maior.

Ferramentas relacionadas