Come confrontare due file in Linux

Come confrontare due file in Linux
Se si desidera confrontare due file e decifrare la differenza, un comando chiamato "Diff" si usa. Questa guida è focalizzata sul fornirti l'uso del "Diff"Comando con varie opzioni per ottenere la differenza tra due file.

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:

  • UN - Aggiungi: Aggiungi contenuto nel primo file per sincronizzare con il secondo file.
  • C - Modifica: indica che una modifica necessaria nel contenuto del primo file per abbinare il secondo file.
  • D - Elimina: rimuovi il contenuto dal primo file da abbinare al secondo.

"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:

  • | - La riga è diversa nel secondo file
  • > - La riga è aggiuntiva nel secondo file
  • < - Line has been deleted from the second file

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:

  • + : Line non è presente nel primo file. Inseriscilo nel primo file o rimuovilo dal secondo file per abbinare entrambi i file.
  • - : La riga esiste nel primo file ma non nel secondo file. Prova a inserirlo nel secondo file o rimuoverlo dal primo per abbinare entrambi i file.
  • ! : La linea necessita di modifiche per abbinare.

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.