GNU/Linux >> Linux Esercitazione >  >> Linux

Tutorial comando Linux cmp per principianti (7 esempi)

Praticamente indipendentemente dal tuo ruolo, se il tuo lavoro normale prevede di fare cose sulla riga di comando in Linux, potresti trovarti in una situazione in cui vorresti confrontare due file usando un'utilità della riga di comando. Esistono diversi strumenti da riga di comando che ti consentono di farlo, e uno di questi è il 'cmp comando '.

In questo tutorial, discuteremo di 'cmp' attraverso esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi e le istruzioni menzionati in questo tutorial sono stati testati su Ubuntu 16.04LTS.

comando cmp

Il comando 'cmp' consente di effettuare il confronto byte per byte di due file. L'utilità fornisce diverse funzionalità sotto forma di opzioni della riga di comando. In questo tutorial, discuteremo alcune delle opzioni chiave che ti daranno (un principiante) una buona idea su come funziona lo strumento.

1. Come confrontare due file usando cmp

Nella sua forma più semplice, puoi usare 'cmp' nel modo seguente:

cmp [file1-name] [file2-name]

Come già accennato, lo strumento confronta due file byte per byte. Quando viene rilevata una differenza, lo strumento si arresta e produce un output che indica in quale riga e byte si trova la differenza.

Ad esempio:

cmp file1.txt file2.txt

Come puoi vedere nello screenshot sopra, l'output dice chiaramente che i file differiscono al byte 20 nella riga 1.

2. Come fare in modo che cmp stampi byte diversi

Se lo desideri, puoi anche fare in modo che 'cmp' visualizzi i diversi byte nel suo output. Questo può essere fatto usando il -b opzione della riga di comando.

cmp -b [file1] [file2]

Ad esempio:

cmp -b file1.txt  file2.txt

In questo caso, come puoi vedere nello screenshot qui sopra, la differenza è nel 17° byte, che è 'l' in file1.txt e 'i' in file2.txt. I valori 154 e 151 sono rispettivamente i valori per questi byte.

3. Come fare in modo che cmp salti alcuni byte iniziali da entrambi i file

Se vuoi, puoi anche fare in modo che 'cmp' salti un determinato numero di byte iniziali da entrambi i file, e quindi confrontarli. Questo può essere fatto specificando il numero di byte come argomento per -i opzione della riga di comando.

cmp -i [byte da saltare] [file1] [file2]

Ad esempio:

cmp -i 10 file1.txt file2.txt

Nota che in casi come questi (in cui usi -i per saltare i byte), il byte da cui inizia il confronto viene trattato come byte numero zero.

Andando avanti, lo strumento consente anche di saltare un numero diverso di byte da entrambi i file. Questo può essere fatto nel modo seguente:

cmp -i [bytes-to-skip-from-first-file] : [bytes-to-skip-from-second-file] [file1] [file2]

Ad esempio:

cmp -i 4:7 file1.txt file2.txt

4. Come fare in modo che cmp visualizzi la posizione (e il valore) dei byte per tutti i byte differenti

Se lo desideri, puoi anche fare in modo che il comando 'cmp' stampi la posizione del byte e il valore del byte per tutti i byte differenti. È possibile accedere a questa funzione utilizzando -l opzione della riga di comando.

cmp -l [file1] [file2]

Ad esempio:

cmp -l file1.txt  file2.txt

La prima colonna nell'output (esempio mostrato sopra) rappresenta la posizione (numero di byte) di byte differenti. La seconda colonna rappresenta il valore in byte del byte diverso nel primo file, mentre la terza colonna rappresenta il valore in byte del byte diverso nel secondo file.

5. Come limitare il numero di byte da confrontare

Lo strumento ti consente anche di limitare il numero di byte che vuoi confrontare, ad esempio, potresti voler confrontare al massimo 25 o 50 byte. Questo può essere fatto usando -n opzione della riga di comando.

$ cmp -n [numero-di-byte-da-confrontare]  [file1] [file2]

Ad esempio:

$ cmp -n 25 file1.txt file2.txt

6. Come visualizzare l'indicatore di avanzamento durante l'utilizzo del comando cmp

Durante il confronto di file di grandi dimensioni (o anche partizioni) utilizzando 'cmp', potresti voler vedere lo stato di avanzamento del confronto in corso. Questo può essere fatto usando il comando 'pv' insieme al comando 'cmp'. Ecco il modello di comando che puoi utilizzare:

$ pv [file1] | cmp -l [file2] > [output-file]

Ad esempio:

$ pv file1.txt | cmp -l file3.txt > output.txt

Nota che il file 'output.txt' conterrà tutto l'output prodotto dal comando 'cmp'. L'indicatore di avanzamento (che puoi vedere nello screenshot sopra) è prodotto dal comando 'pv'.

Il comando 'pv' di solito non viene preinstallato in Linux (almeno non su Ubuntu). Ma puoi installarlo facilmente usando il seguente comando:

sudo apt-get install pv

7. Come fare in modo che 'cmp' sopprima l'output

Lo strumento consente inoltre di sopprimere l'output che produce normalmente. Questo può essere fatto usando -s opzione della riga di comando.

$ cmp -s [file1] [file2]

Ad esempio:

$ cmp -s file1.txt file2.txt

Questa opzione può tornare utile quando si utilizza l'utilità 'cmp' negli script. Ad esempio, a seconda che i file siano identici o meno (cosa che si può dire accedendo al codice di uscita del comando), potresti voler visualizzare un messaggio personalizzato invece dell'output che normalmente lo strumento produce.

Conclusione

Abbiamo discusso la maggior parte delle opzioni del comando "cmp" in questo articolo, quindi devi solo esercitarti per iniziare a utilizzare lo strumento nel tuo lavoro quotidiano. In caso di dubbi o domande, fare riferimento alla pagina man 'cmp'.


Linux
  1. Tutorial sul comando cd di Linux per principianti (8 esempi)

  2. Tutorial comando Linux comm per principianti (5 esempi)

  3. Linux df Command Tutorial per principianti (8 esempi)

  4. Tutorial sul comando della data di Linux per principianti (8 esempi)

  5. Tutorial sul comando del nome host Linux per principianti (5 esempi)

Linux who Command Tutorial per principianti (8 esempi)

Linux nl Command Tutorial per principianti (7 esempi)

Tutorial sui comandi Linux nm per principianti (10 esempi)

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)