Esempi di comandi Diff in Linux

Esempi di comandi Diff in Linux
Il comando diff è un comando di analisi o informativo che stampa le differenze tra i file, analizzandoli Line per riga o directory in modo ricorsivo mentre informano l'utente quali modifiche sono necessarie per apportare i file uguali, questo punto è importante per comprendere le uscite differenziali. Questo tutorial si concentra sul comando diff.

Prima di iniziare, creare due file utilizzando qualsiasi editor di testo (Nano viene utilizzato in questo tutorial) con lo stesso contenuto:

# nano diffsample1

Inside pasta:

 Linuxhint pubblica i migliori contenuti per te 

Premere CTRL+X e y per salvare ed uscire.

Crea un secondo file chiamato DiffSample2 con lo stesso contenuto:

# nano diffsample2

Nota: Presta attenzione a spazi e schede, i file devono essere uguali al 100%.

Premere CTRL+X e y per salvare ed uscire.

# Diff DiffSample1 DiffSample2

Come puoi vedere non c'è output, non c'è bisogno di fare qualcosa per rendere i file uguali perché sono già uguali.

Ora consentiamo di modificare il file diffsample2 per apportare alcune modifiche:

# nano diffsample2

Quindi sostituiamo la parola "contenuto" per "suggerimenti":

Premere CTRL+X E Y per salvare ed uscire.

Ora corri:

# Diff DiffSample1 DiffSample2

Vediamo l'output:

L'output sopra, "3c3" significa "La riga 3 del primo file di dovrebbe essere sostituita per la riga 3 del secondo file". La parte amichevole dell'output è che ci mostra quale testo deve essere cambiato ("contenuto per te" per "Suggerimenti per te")

Questo ci mostra il riferimento per il comando diff non è il primo file ma il secondo, ecco perché la prima terza riga (la prima 3) deve essere modificata (c) come terza riga del secondo file (secondo 3).

Il comando diff può mostrare 3 caratteri:

C: Questo personaggio istruisce a Modifica deve essere fatto.
UN: Questo personaggio istruisce che qualcosa deve essere Aggiunto.
D: Questo personaggio istruisce che qualcosa deve essere Cancellato.

I primi numeri prima di un personaggio appartengono al primo file, mentre i numeri dopo i caratteri appartengono al secondo file.

Il simbolo del secondo file che viene utilizzato come riferimento.

Invertiamo l'ordine dei file, invece di eseguire

# Diff DiffSample1 DiffSample2

correre:

# Diff diffSample2 DiffSample1

Puoi vedere come è stato invertito l'ordine e ora il file DiffSample1 viene utilizzato come riferimento e ci indica di cambiare "Suggerimenti per te" per "Contenuto per te", questo era l'output precedente:

Ora modifichiamo il file diffsample1 in questo modo:

Rimuovere tutte le righe, ad eccezione della prima riga sul file diffsample1. Quindi corri:

# Diff diffSample2 DiffSample1

Come puoi vedere, poiché abbiamo usato il file diffsample1 come riferimento, per rendere il file diffsample2 esattamente uguale dobbiamo eliminare (D) linee due e tre (2,3) come nel primo file e nelle prime righe (1) sarà uguale.

Ora lascia invertire l'ordine e invece di correre "# Diff DiffSample2 DiffSample1 " correre:

# Diff DiffSample1 DiffSample2

Come puoi vedere, mentre l'esempio precedente ci ha ordinato di rimuovere, questo ci ordina di aggiungere (UN) righe 2 e 3 dopo la prima riga del primo file (1).

Ora lavoriamo sulla proprietà del caso di questo programma.

Modifica il file diffsample2 come:

E modifica il file diffsample1 come:

L'unica differenza sono le lettere maiuscole sul file diffsample2. Ora confrontiamolo usando di nuovo Diff:

# Diff DiffSample1 DiffSample2

Come puoi vedere differenze trovate diff, le lettere capitali, evitiamo differendo le lettere capitali, se non siamo interessati al caso sensibile aggiungendo il -io opzione:

# diff -i diffsample1 diffsample2

Non sono state rilevate differenze, il rilevamento del caso è stato disabilitato.

Ora cambiamo il formato di output aggiungendo l'opzione -u Utilizzato per stampare uscite unificate:

Inoltre, ad oggi e ora, l'output viene visualizzato con a - E + simbolo cosa dovrebbe essere rimosso e cosa dovrebbe essere aggiunto per rendere i file uguali.

All'inizio di questo articolo ho detto che gli spazi e le schede devono essere uguali in entrambi i file, poiché vengono rilevate anche dal Comando Diff, se vogliamo che il Comando Diff ignori spazi e schede dobbiamo applicare il -w opzione.

Apri il file diffsample2 e aggiungi spazi e schede:

Come vedi, ho aggiunto un paio di schede dopo "il migliore" nella seconda riga e anche gli spazi in tutte le righe, chiudi, salva il file ed esegui:

# Diff DiffSample1 DiffSample2

Come puoi vedere differenze, inoltre alle lettere di capitale. Ora applichiamo l'opzione -w per istruire diff di ignorare gli spazi vuoti:

Come vedi nonostante la tabulazione diff ha trovato solo come lettere capitali.
Ora aggiungiamo l'opzione -i di nuovo:

#diff -wi diffsample2 diffsample1

Il Comando Diff ha dozzine di opzioni disponibili da applicare per ignorare, modificare l'output, discriminare le colonne quando presenti, ecc. È possibile ottenere ulteriori informazioni su queste opzioni utilizzando il comando man o su http: // man7.Org/Linux/Man-Pages/Man1/Diff.1.html. Spero che tu abbia trovato questo articolo con esempi di comandi diffing in Linux. Continua a seguire LinuxHint per ulteriori suggerimenti e aggiornamenti su Linux e Networking.