Diff di testo
Confronta due frammenti di testo e vedi cosa è cambiato. Granularità per riga o per parola, anteprima live, gira interamente nel tuo browser.
Cos'è un diff di testo?
Un diff (abbreviazione di differenza) è un report fianco a fianco di cosa è cambiato tra due frammenti di testo. L'uso classico è nel controllo versione — Git, SVN e simili usano i diff per mostrare cosa ha modificato ogni commit — ma la stessa idea è utile per rivedere bozze, confrontare contratti legali, individuare piccole modifiche nei file di configurazione o verificare che un documento sia sopravvissuto intatto a un copia-incolla. Questo strumento calcola il diff usando un algoritmo a sottosequenza comune più lunga, la stessa famiglia di tecniche che alimentano git diff.
Come usare questo strumento
Incolla la versione originale in A e quella modificata in B. Il diff appare live qui sotto: le righe (o parole) verdi sono aggiunte in B, quelle rosse sono rimozioni da A, le righe normali sono invariate. Cambia tra granularità per riga e per parola a seconda di cosa vuoi vedere — il diff per riga è perfetto per codice o testo strutturato, quello per parola è più leggibile per la prosa, in cui contano le piccole modifiche di formulazione. Le statistiche sopra l'output mostrano il numero di token aggiunti, rimossi e invariati.
Quando usare diff per riga o per parola
Il diff per riga è la scelta predefinita giusta per codice, JSON, CSV, file di log e qualsiasi cosa la cui struttura viva a livello di riga. Una modifica di un singolo carattere appare come una riga rimossa e una aggiunta — facile da scorrere e coerente con quello che fanno i tool di controllo versione. Il diff per parola brilla per la prosa: evidenzia le parole effettivamente cambiate all'interno di un paragrafo, così vedi le modifiche senza rileggere tutto. Evita il diff per parola su documenti molto lunghi — il calcolo LCS diventa quadratico e inizia a sentirsi lento sopra qualche migliaio di parole.
Domande frequenti
Il mio testo viene caricato da qualche parte?
Come funziona l'algoritmo di diff?
diff. Per input molto grandi (oltre ~2.000 token su ciascun lato) lo strumento ricade su un confronto naïve posizione per posizione, più veloce ma meno ottimo.Perché a volte il risultato sembra sbagliato?
E gli spazi?
Posso esportare il diff?
diff -u a.txt b.txt dalla riga di comando, oppure usa git diff --no-index a.txt b.txt per un output più ricco simile a quello mostrato da GitHub.Perché i fine riga vengono a volte segnalati come modifiche?
\r\n (CRLF), Unix e macOS usano \n (LF). Quando il testo viene copiato tra sistemi, i fine riga possono mescolarsi e il diff tratterà line\r e line come distinti. Fai passare il testo da uno strumento come dos2unix o incollalo in un editor di testo semplice che normalizza i fine riga prima di confrontare.