DIFF(1) GNU Tools DIFF(1)
diff - trova differenze tra due file
diff [opzioni] file-da file-verso
Nel caso pi semplice, diff confronta il contenuto dei due file file-da
e file-verso. Se - viene usato come nome di file, allora il testo
viene letto da standard input. Come caso speciale, diff - - confronta
una copia di standard input con se stessa.
Se file-da
una directory mentre file-verso non lo , diff fa il confronto col file
in file-da con nome file-verso, e vice versa. Il file (che non una
directory) non pu essere -.
Se sia file-da che file-verso sono directory, diff confronta i file
corrispondenti di ciascuna directory, in ordine alfabetico; il con-
fronto non ricorsivo, a meno che venga usata l'opzione -r o --recur-
sive. diff non confronta mai il contenuto di una directory come se
fosse un file normale. Il file che viene specificato totalmente non pu
essere standard input, non avendo questo un nome, e quindi non avendo
senso il concetto di file con lo stesso nome.
Le opzioni di diff iniziano con -, per cui, normalmente, n file-da n
file-verso possono iniziare con un -. D'altra parte, -- come argomento
a s stante tratta gli argomenti rimanenti come nomi di file, anche se
iniziano per -.
Opzioni
Pi sotto c' un sommario di tutte le opzioni accettate dalla versione
GNU di diff. La maggior parte delle opzioni ha due nomi equivalenti,
uno dei quali
una lettera singola preceduta da -, mentre l'altro un nome lungo pre-
ceduto da --. Pi opzioni monolettera possono essere combinate in una
singola parola sulla riga di comando (a meno che siano seguite da
un'opzione): -ac
l'equivalente di -a -c. Le opzioni lunghe possono essere abbreviate
ad un prefisso unico del nome. Parentesi quadre ([ e ]) indicano che
un'opzione prende un argomento opzionale.
-righe mostra righe (un intero) righe di contesto. Questa opzione non
specifica da sola un formato di output; non ha nessun effetto a
meno che venga combinata con -c o -u. Quest'opzione obsoleta.
Per operare correttamente, patch ha, di solito, bisogno di
almeno due righe di contesto.
-a Tratta tutti i file come testo confrontandoli riga per riga,
anche se non sembrano essere testo.
-b Ignora differenza nella quantit di spazi bianchi.
-B Ignora differenze che consistono solo in righe vuote (eccedenti
o mancanti).
--brief
Riferisce solo se i file sono diversi, e non i particolari della
differenza.
-c Usa il formato a contesto (context output, in inglese).
-C righe
--context[=righe]
Usa il formato a contesto, mostrando righe (un intero) righe di
contesto, o tre se righe non specificata. Per operare corretta-
mente, patch ha, di solito, bisogno di almeno due righe di con-
testo.
--changed-group-format=formato
Usa formato per scrivere un gruppo di righe contenente le dif-
ferenze di entrambi i file nel formato if-then-else.
-d Usa un algoritmo diverso per trovare un, probabilmente, minore
insieme di modifiche da fare. Questo rende diff pi lento (a
volte molto pi lento).
-D nome
Scrive usando il formato if-then-else, dipendente dalla macro
nome del preprocessore.
-e
--ed Emette uno scritto ed valido.
--exclude=modello
Confrontando due directory, ignora file e sottodirectory il cui
nome corrisponda a modello.
--exclude-from=file
Confrontando due directory, ignora file e sottodirectory il cui
nome corrisponda ad un modello contenuto in file.
--expand-tabs
Espande i tabulatori nell'output per preservare l'allineamento
di tabulazione nel file d'input.
-f Produce output che assomiglia pi o meno ad uno scritto di ed ma
con le modifiche nello stesso ordine in cui appaiono nel file.
-F regexp
Nel formato a contesto o unificato, mostra, per ciascun blocco
di differenze, alcune delle righe precedenti corrispondenti a
regexp.
--forward-ed
Produce output che assomiglia pi o meno ad uno scritto di ed ma
con le modifiche nello stesso ordine in cui appaiono nel file.
-h Quest'opzione, al momento, non ha nessun effetto; presente per
compatibilit Unix.
-H Usa un procedimento euristico per gestire pi rapidamente grossi
file con numerose modifiche, piccole ma diffuse.
--horizon-lines=righe
Non elimina le ultime righe righe di prefisso comune n le prime
righe di suffisso comune.
-i Considera allo stesso modo maiuscole e minuscole, ignorando ogni
relativa differenza.
-I regexp
Ignora ogni differenza che consista solo nella presenza o
assenza di righe corrispondenti a regexp.
--ifdef=nome
Produce output nel formato if-then-else, basandosi sulla con-
dizione espressa dalla macro nome di preprocessore.
--ignore-all-space
Ignora gli spazi bianchi mentre confronta delle righe.
--ignore-blank-lines
Ignora ogni differenza che consista solo nella presenza o
assenza di righe vuote.
--ignore-case
Considera allo stesso modo maiuscole e minuscole, ignorando ogni
relativa differenza.
--ignore-matching-lines=regexp
Ignora ogni differenza che consista solo nella presenza o
assenza di righe corrispondenti a regexp.
--ignore-space-change
Ignora differenza nella quantit di spazi bianchi.
--initial-tab
Usa un tabulatore invece di uno spazio davanti al contenuto di
una riga in formato a contesto o unificato. In questo modo
l'allineamento dei tabulatori nella riga assume un aspetto nor-
male.
-l Fa passare l'output attraverso pr per impaginarlo.
-L etichetta
--label=etichetta
Usa etichetta invece del nome del file nelle intestazioni di un
formato a contesto o unificato.
--left-column
Stampa solo quella di sinistra fra due colonne comuni nel for-
mato lato a lato.
--line-format=formato
Usa formato per scrivere tutte le righe di input nel formato if-
then-else.
--minimal
Usa un algoritmo diverso per trovare un, probabilmente, minore
insieme di modifiche da fare. Questo rende diff pi lento (a
volte molto pi lento).
-n Produce differenze in formato RCS; come -f, ma ogni comando
specifica il numero di righe coinvolte.
-N
--new-file
Confrontando due directory, se un file viene trovato solo in
una, viene trattato come se esistesse, vuoto, nell'altra.
--new-group-format=formato
Usa formato per scrivere un gruppo di righe prese dal solo sec-
ondo file nel formato if-then-else.
--new-line-format=formato
Usa formato per scrivere una riga presa dal solo secondo file
nel formato if-then-else.
--old-group-format=formato
Usa formato per scrivere un gruppo di righe prese dal solo primo
file nel formato if-then-else.
--old-line-format=formato
Usa formato per scrivere una riga presa dal solo primo file nel
formato if-then-else.
-p Mostra in quale funzione C appare ciascuna modifica.
-P Confrontando due directory, se un file viene trovato solo in
una, viene trattato come se esistesse, vuoto, nell'altra.
--paginate
Fa passare l'output attraverso pr per impaginarlo.
-q Riferisce solo se i file sono diversi, e non i particolari della
differenza.
-r Confrontando due directory, confronta ogni sottodirectory ricor-
sivamente.
--rcs Produce differenze in formato RCS; come -f, ma ogni comando
specifica il numero di righe coinvolte.
--recursive
Confrontando due directory, confronta ogni sottodirectory ricor-
sivamente.
--report-identical-files
-s Riferisce quando due file sono identici.
-S file
Confrontando due directory, incomincia dal file file. Ci viene
usato per riprendere un confronto interrotto.
--sdiff-merge-assist
Stampa informazioni aggiuntive per aiutare sdiff. sdiff usa
quest'opzione invocando diff. L'opzione non dovrebbe essere
invocata direttamente dall'utente.
--show-c-function
Mostra in quale funzione C appare ciascuna modifica.
--show-function-line=regexp
Nel formato a contesto o unificato, mostra, per ciascun blocco
di differenze, alcune delle righe precedenti corrispondenti a
regexp.
--side-by-side
Usa il formato lato a lato.
--speed-large-files
Usa un procedimento euristico per gestire pi rapidamente grossi
file con numerose modifiche, piccole ma diffuse.
--starting-file=file
Confrontando due directory, incomincia dal file file. Ci viene
usato per riprendere un confronto interrotto.
--suppress-common-lines
Non stampa le righe comuni nel formato lato a lato.
-t Espande i tabulatori nell'output per preservare l'allineamento
di tabulazione nel file d'input. -T Usa un tabulatore invece di
uno spazio davanti al contenuto di una riga in formato a con-
testo o unificato. In questo modo l'allineamento dei tabulatori
nella riga assume un aspetto normale.
--text Tratta tutti i file come testo confrontandoli riga per riga,
anche se non sembrano essere testo.
-u Usa il formato unificato.
--unchanged-group-format=formato
Usa formato per scrivere un gruppo di righe comuni prese da
entrambi i file, nel formato if-then-else.
--unchanged-line-format=formato
Usa formato per scrivere una riga comune presa da entrambi i
file, nel formato if-then-else.
--unidirectional-new-file
Confrontando due directory, se un file viene trovato solo nella
seconda viene trattato come se esistesse, vuoto, nella prima.
-U righe
--unified[=righe]
Usa il formato unificato, mostrando righe (un intero) righe di
contesto, oppure tre qualora righe non fosse stata specificata.
Per operare correttamente, patch ha, di solito, bisogno di
almeno due righe di contesto.
-v
--version
Stampa il numero di versione di diff.
-w Confrontando due righe ignora gli spazi bianchi.
-W colonne
--width=colonne
Usa una larghezza di colonne nel formato lato a lato.
-x modello
Confrontando due directory, ignora file e sottodirectory il cui
nome corrisponda a modello.
-X file
Confrontando due directory, ignora file e sottodirectory il cui
nome corrisponda ad un modello contenuto in file.
-y Usa il formato lato a lato.
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).
Uno stato di uscita di zero significa che non stata trovata nessuna
differenza, di uno che ne sono state trovate, di due che ci sono prob-
lemi.
GNU Tools 22 set 1993 DIFF(1)