Quindi, come fa il "Diff"Comando effettivamente funzionare? IL "Diff"Il comando confronta i due file e emette un elenco di differenze tra i due file. Più precisamente, produce un elenco di modifiche che devono essere apportate nel primo file per abbinare il secondo file. IL "Diff"Il comando viene anche utilizzato dai programmatori per ottenere la differenza tra due file di codice sorgente per sviluppare le patch.
Prima di immergersi negli esempi, si noti che l'ordine dei file è molto importante. Perché il "Diff"Il comando fornisce output in base all'ordine dei file.
Come utilizzare il comando "diff" in Linux per confrontare i file:
La sintassi del "Diff"Il comando è menzionato di seguito:
$ diff [options] [file1] [file2]
Innanzitutto, crea due file. Sto creando file di testo con il nome di “Test_file_1.TXT" E “Test_file_2.TXT". Questi file contengono contenuti con una leggera differenza:
Ora usa il seguente comando per ottenere la differenza:
$ diff test_file_1.txt test_file_2.TXT
L'output standard ha visualizzato le righe corrispondenti in base all'ordine dei file menzionati nel comando. Quindi, decodizziamo l'output:
Il confronto dei file è etichettato e ogni etichetta ha un numero su entrambi i lati. Il formato è il seguente:
[Numero di riga del file 1] [etichetta (a, c, d)] [Numero di riga del file 2]
Ci sono tre etichette:
"2d1" indica di eliminare la riga numero 2 del primo file per abbinare il secondo file dal numero 1.
Allo stesso modo, "4c3" significa apportare una modifica alla quarta riga del primo file per abbinare la riga numero 3 del secondo file poiché entrambe le righe sono leggermente diverse.
C'è un altro metodo per visualizzare la differenza, utilizzare il "Diff" comando con il "-Y" opzione:
$ diff -y -w 60 test_file_1.txt test_file_2.TXT
Nell'output di cui sopra, il contenuto di “Test_file_1.TXT" viene visualizzato sul lato sinistro, mentre il contenuto di “Text_file_2.TXT" viene visualizzato sul lato destro. La differenza è indicata dai simboli:
Il "-w" indica la larghezza tra il contenuto di due file. Per ottenere separatamente e visualizzare la differenza, usa quanto segue:
$ Diff -y -w 60 - -Suppress -Common -Lines Test_File_1.txt test_file_2.TXT
Come ottenere l'output in una riga usando il comando "diff":
Se il metodo etichettato è difficile da decodificare, allora c'è un approccio più semplice. Usando il "-Q" Opzione con la "Diff" Il comando ti dà l'output in una riga. Bene, senza ulteriori informazioni, però:
$ diff -q test_file_1.txt test_file_2.TXT
Se i file differiscono, il comando sopra fornirà un output. Se i file sono identici, allora non ci sarà output. Per dimostrarlo, sto creando una copia di “Test_file_1.TXT" Usando:
$ cp test_file_1.txt test_file_3.TXT
Un nuovo file verrà creato con il nome di “Test_file_3.TXT" contenente lo stesso contenuto che “Test_file_1.TXT" ha. Ora, usa:
$ diff -q test_file_1.txt test_file_2.TXT
Poiché entrambi i file hanno un contenuto simile, quindi non ci sarebbe alcun output.
Come controllare la differenza di file in modalità contesto utilizzando il comando "diff":
Per ottenere il confronto in modalità contesto, il "-C" l'opzione verrà utilizzata con il "Diff" comando:
$ diff -c test_file_1.txt test_file_2.TXT
Sezioniamo l'output.
Per mantenere la differenza, il primo file è indicato da "***" insieme alla data e all'ora della creazione, mentre il secondo file è indicato da "-".
La riga successiva indica una gamma di linee considerate durante il confronto. Per il primo file, lo è "*** 1,6 ****" E per il secondo file, lo è "-1,5--":
La differenza è indicata dai simboli:
Come verificare la differenza di file in modalità unificata usando il comando "diff":
La modalità unificata è abbastanza simile alla modalità di contesto ma senza informazioni ridondanti. Il flag che usiamo è "-U":
$ diff -u test_file_1.txt test_file_2.TXT
Nell'output, il primo file è indicato da "-" e il secondo da "+++". La seconda riga mostra il numero di righe considerate per il confronto in entrambi i file, quindi il contenuto da eliminare, aggiungere o modificare con i simboli con loro. Non ci saranno simboli con righe simili in entrambi i file.
Come ignorare la sensibilità al caso mentre si utilizza il comando "diff":
Se si desidera confrontare i file mentre ignori la sensibilità del caso, usa il "-io" bandiera:
$ diff -i test_file_1.txt test_file_2.TXT
Per dimostrazione, ho fatto il "D" Di "Deepin" Nel primo file piccolo:
Come visto nel primo comando, è indicata la differenza; mentre usi "-io" quella differenza è stata rimossa.
Alcune altre utili opzioni del "Diff" Il comando è elencato di seguito:
Opzione | Descrizione |
---|---|
-UN | Questa opzione tratta tutti i file come file di testo |
-B | Ignora la modifica in cui le righe sono tutte vuote |
-E | Questa opzione ignora l'espansione della scheda |
-IO | Ignora le modifiche in cui tutte le righe corrispondono |
-S | Fornisce output quando due file sono identici |
-w | Ignora tutto lo spazio bianco |
-Z | Ignora lo spazio bianco all'estremità della linea |
Come utilizzare l'editor VIM per confrontare due file:
Un altro metodo per confrontare due file è l'utilizzo del "Vimdiff" comando. Per questo, è necessario installare VIM:
$ sudo apt install vim
Ora, per confrontare due file utilizzati:
$ vimdiff test_file_1.txt test_file_2.TXT
Entrambi i file verranno aperti fianco a fianco. La parte che non corrisponde verrà evidenziata:
Come confrontare due file usando "Colordiff":
Un altro approccio è una sorta di estensione del "Diff" comando. Puoi rendere il confronto più identificabile aggiungendo i colori ad esso. Per installare l'uso:
$ sudo APT Installa Colordiff
Per confrontare i file, utilizzare:
$ colordiff test_file_1.txt test_file_2.TXT
Puoi sostituire "Diff" con "Colordiff" Per ottenere l'output standard del "Diff" comando in formato colorato.
Conclusione:
Per confrontare i file in Linux e persino in macOS, un'utilità utilizzata è chiamata "diff". L'utilità "diff" confronta due file e fornisce informazioni sulle differenze tra i due file. Gli sviluppatori utilizzano principalmente il comando "diff" per creare file patch.
In questa guida, abbiamo discusso a fondo il "Diff" comando e come usarlo per confrontare due file con opzioni diverse. Abbiamo anche imparato a usare "Colordiff" Per rendere le differenze di file più riconoscibili. Ma se trovi l'utilità basata sul terminale difficile da usare, ci sono anche alcuni strumenti basati sulla GUI, come Kompare, Diffmerge, Meld - Diff Strumento e Strumento diffuso - GUI GIFF.