Diff de texto/ Linha por linha
Destaque diferenças linha por linha entre dois textos. Suporta código e texto simples com linhas de contexto configuráveis. Totalmente local.
OriginalA
ModificadoB
Contexto
Diff
Cole o texto nos dois painéis acima.
Esta ferramenta resolveu o seu problema?
O que é uma ferramenta de diff de texto
Uma ferramenta de diff de texto usa o algoritmo LCS (subsequência comum mais longa) para comparar dois textos linha por linha, identificando adições, exclusões e modificações.
Casos de uso comuns de ferramentas diff
Revisão de código: comparar alterações de código. Gerenciamento de configuração: comparar configs entre ambientes. Colaboração em documentos: ver histórico de edições. Migração de dados: verificar a precisão da transformação.
Exemplos de código
JavaScript (jsdiff)
import { diffLines } from 'diff';
const a = 'foo\nbar\nbaz';
const b = 'foo\nqux\nbaz';
diffLines(a, b).forEach(part => {
const sign = part.added ? '+' :
part.removed ? '-' : ' ';
process.stdout.write(sign + part.value);
});Python
import difflib
a = ['foo\n', 'bar\n', 'baz\n']
b = ['foo\n', 'qux\n', 'baz\n']
# Unified diff (like git diff)
diff = difflib.unified_diff(
a, b,
fromfile='original',
tofile='modified',
n=3, # context lines
)
print(''.join(diff))Go
// github.com/sergi/go-diff
import (
dmp "github.com/sergi/go-diff/
diffmatchpatch"
)
d := dmp.New()
diffs := d.DiffMain(textA, textB, false)
patch := d.PatchMake(textA, diffs)
fmt.Println(d.PatchToText(patch))Shell / CLI
# Unified diff with 3 context lines diff -U 3 original.txt modified.txt # Git-style diff (no git repo needed) git diff --no-index \ original.txt modified.txt # Side-by-side view diff --side-by-side \ original.txt modified.txt
Perguntas frequentes
Como funciona o algoritmo diff?
A ferramenta usa o algoritmo LCS (subsequência comum mais longa) para comparar textos linha por linha, encontrando o conjunto mínimo de adições e exclusões — semelhante ao algoritmo usado pelo git diff.
O que fazem as linhas de contexto?
As linhas de contexto controlam quantas linhas inalteradas são mostradas ao redor de cada seção alterada. 0 mostra apenas linhas alteradas; 3 mostra 3 linhas antes e depois de cada alteração; 'Tudo' mostra o texto completo.
Quais tipos de texto são suportados?
Qualquer texto simples é suportado, incluindo código (JavaScript, Python, Go, etc.), arquivos de configuração (JSON, YAML, TOML), documentos Markdown e arquivos de log.
Meu conteúdo é enviado a algum servidor?
Não. Todo o processamento acontece inteiramente no navegador. Seu conteúdo nunca sai do seu dispositivo, tornando segura a comparação de código sensível.
Como copio a saída diff?
Clique no botão 'Copiar' no canto superior direito do painel diff para copiar o texto diff unificado para a área de transferência.
O que faz o botão Trocar?
Trocar A↔B troca os painéis Original e Modificado, permitindo ver o diff na direção oposta.