Come confrontare due file in Linux

How Compare Two Files Linux



Se vuoi confrontare due file e decifrare la differenza, un comando chiamato differenza viene utilizzato. Questa guida è focalizzata sulla fornitura dell'uso del differenza comando con varie opzioni per ottenere la differenza tra due file.

Allora, come funziona? differenza il comando funziona davvero? Il differenza Il comando confronta i due file e restituisce un elenco di differenze tra i due file. Più precisamente, fornisce un elenco di modifiche che devono essere apportate al primo file per corrispondere al secondo file. Il differenza comando viene utilizzato anche dai programmatori per ottenere la differenza tra due file di codice sorgente per sviluppare patch.







Prima di immergerci negli esempi, tieni presente che l'ordine dei file è molto importante. Perché la differenza Il comando fornisce l'output in base all'ordine dei file.



Come utilizzare il comando diff in Linux per confrontare i file:

La sintassi di differenza comando è menzionato di seguito:



$differenza [opzioni] [file1] [file2]

Innanzitutto, crea due file. Sto creando file di testo con il nome di file_test_1.txt e file_test_2.txt . Questi file contengono contenuti con una leggera differenza:





Ora usa il seguente comando per ottenere la differenza:



$differenzafile_prova_1.txt file_prova_2.txt

Lo standard output mostrava le righe che corrispondono secondo l'ordine dei file menzionati nel comando. Quindi, decodifichiamo l'output:

Il confronto dei file è etichettato e ogni etichetta ha un numero su entrambi i lati. Il formato è il seguente:

[Numero riga del file 1][Label(a,c,d)][Numero riga del file 2]

Ci sono tre etichette:

  • a – Aggiungi: aggiunge contenuto nel primo file da sincronizzare con il secondo file.
  • C – Modifica: indica che è necessaria una modifica nel contenuto del primo file in modo che corrisponda al secondo file.
  • D – Elimina: rimuove il contenuto dal primo file in modo che corrisponda al secondo.

2d1 indica di eliminare la riga numero 2 del primo file in modo che corrisponda al secondo file dalla riga numero 1.

Allo stesso modo, 4c3 significa apportare una modifica alla quarta riga del primo file in modo che corrisponda alla riga numero 3 del secondo file poiché entrambe le righe sono leggermente diverse.

Esiste un altro metodo per visualizzare la differenza, utilizzare il differenza comando con il -e opzione:

$differenza -e -IN 60file_prova_1.txt file_prova_2.txt

Nell'output di cui sopra, il contenuto di file_test_1.txt viene visualizzato sul lato sinistro, mentre il contenuto di file_testo_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, utilizzare quanto segue:

$differenza -e -IN 60 --sopprimi-linee-comunifile_prova_1.txt file_prova_2.txt

Come ottenere l'output in una riga utilizzando il comando diff:

Se il metodo etichettato è difficile da decodificare, esiste un approccio più semplice. Usando il -Q opzione con il differenza comando ti dà l'output in una riga. Bene, senza ulteriori informazioni, però:

$differenza -Qfile_prova_1.txt file_prova_2.txt

Se i file differiscono, il comando precedente fornirà un output. Se i file sono identici, non verrà prodotto alcun output. Per dimostrarlo, sto creando una copia di file_test_1.txt utilizzando:

$cpfile_test_1.txt file_test_3.txt

Verrà creato un nuovo file con il nome di file_test_3.txt contenente lo stesso contenuto che file_test_1.txt ha. Ora usa:

$differenza -Qfile_prova_1.txt file_prova_2.txt

Poiché entrambi i file hanno un contenuto simile, quindi, non ci sarebbe alcun output.

Come verificare la differenza di file in modalità contestuale utilizzando il comando diff:

Per ottenere il confronto in modalità contestuale, il -C l'opzione verrà utilizzata con differenza comando:

$differenza -Cfile_prova_1.txt file_prova_2.txt

Analizziamo l'output.

Per mantenere la differenza, il primo file è indicato da *** insieme alla data e ora di creazione, mentre il secondo file è indicato da —.

La riga successiva indica un intervallo di righe considerato durante il confronto. Per il primo file, è ***1.6**** e per il secondo file, è —1.5—- :

La differenza è indicata dai simboli:

  • + : La riga non è presente nel primo file. Inseriscilo nel primo file o rimuovilo dal secondo file in modo che corrisponda a entrambi i file.
  • – : la riga esiste nel primo file ma non nel secondo file. Prova a inserirlo nel secondo file o a rimuoverlo dal primo in modo che corrisponda a entrambi i file.
  • ! : La linea necessita di modifiche per poter corrispondere.

Come verificare la differenza di file in modalità unificata utilizzando il comando diff:

La modalità unificata è abbastanza simile alla modalità contestuale ma senza informazioni ridondanti. La bandiera che usiamo è -u :

$differenza -ufile_prova_1.txt file_prova_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 esse. Non ci saranno simboli con linee simili in entrambi i file.

Come ignorare la distinzione tra maiuscole e minuscole durante l'utilizzo del comando diff:

Se vuoi confrontare i file ignorando la distinzione tra maiuscole e minuscole, usa il -io bandiera:

$differenza -iofile_prova_1.txt file_prova_2.txt

Per dimostrazione, ho fatto il D di Deepin nel primo file piccolo:

Come visto nel primo comando, viene indicata la differenza; durante l'utilizzo -io quella differenza è stata rimossa.

Alcune altre opzioni utili del differenza comando sono elencati di seguito:

Opzione Descrizione
-a 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 linee corrispondono
-S Fornisce output quando due file sono identici
-in Ignora tutti gli spazi bianchi
-INSIEME A Ignora lo spazio bianco alla fine della riga

Come usare Vim Editor per confrontare due file:

Un altro metodo per confrontare due file è usare il vimdiff comando. Per questo, devi avere installato vim:

$sudoadattoinstallare sono venuto

Ora, per confrontare due file usa:

$vimdiff file_test_1.txt file_test_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 differenza comando. Puoi rendere il confronto più identificabile aggiungendovi dei colori. Per installare utilizzare:

$sudoadattoinstallarecolordiff

Per confrontare i file, usa:

$colordiff file_test_1.txt file_test_2.txt

Puoi sostituire differenza insieme a colordiff per ottenere l'output standard di differenza comando in formato colorato.

Conclusione:

Per confrontare i file in Linux e anche 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 di patch.

In questa guida, abbiamo discusso a fondo il differenza comando e come usarlo per confrontare due file con opzioni diverse. Abbiamo anche imparato a usare colordiff per rendere più riconoscibili le differenze di file. Ma se trovi che l'utilità basata su terminale sia difficile da usare, ci sono anche alcuni strumenti basati su GUI, come Kompare, DiffMerge, Meld - Diff Tool e Diffuse - GUI Giff Tool.