Linux cmp Befehl Tutorial für Anfänger (7 Beispiele)

Ziemlich unabhängig von Ihrer Rolle, wenn Ihre reguläre Arbeit darin besteht, Dinge auf der Kommandozeile in Linux zu erledigen, befinden Sie sich möglicherweise in einer Situation, in der Sie zwei Dateien mit einem Kommandozeilenprogramm vergleichen möchten. Es gibt mehrere Befehlszeilenwerkzeuge, mit denen Sie dies tun können, und eines davon ist der Befehl ‚cmp‚.

In diesem Tutorial werden wir ‚cmp‘ anhand leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle in diesem Tutorial genannten Beispiele und Anweisungen auf Ubuntu 16.04LTS getestet wurden.

cmp-Befehl

Mit dem Befehl ‚cmp‘ können Sie einen byteweisen Vergleich zweier Dateien durchführen. Das Dienstprogramm bietet mehrere Funktionen in Form von Befehlszeilenoptionen. In diesem Tutorial werden wir einige der wichtigsten Optionen besprechen, die Ihnen (einem Anfänger) eine gute Vorstellung davon vermitteln, wie das Tool funktioniert.

1. Wie man zwei Dateien mit cmp vergleicht

In seiner einfachsten Form können Sie ‚cmp‘ wie folgt verwenden:

cmp [file1-name] [file2-name]

Wie bereits erwähnt, vergleicht das Tool zwei Dateien Byte für Byte. Wenn eine Differenz gefunden wird, stoppt das Werkzeug und erzeugt eine Ausgabe, die angibt, in welcher Zeile und in welchem Byte sich die Differenz befindet.

Zum Beispiel:

cmp file1.txt file2.txt

Wie man zwei Dateien mit cmp vergleicht

Wie Sie im obigen Screenshot sehen können, sagt die Ausgabe deutlich, dass sich die Dateien im Byte 20 in Zeile 1 unterscheiden.

2. Wie man cmp-Druck verschiedene Bytes drucken lässt

Wenn Sie möchten, können Sie auch festlegen, dass ‚cmp‘ die verschiedenen Bytes in seiner Ausgabe anzeigt. Dies kann mit der Kommandozeilenoption -b erfolgen.

cmp -b [file1] [file2]

Zum Beispiel:

cmp -b file1.txt  file2.txt

Wie man cmp-Druck verschiedene Bytes drucken lässt

In diesem Fall, wie Sie im obigen Screenshot sehen können, liegt der Unterschied im 17. Byte, das heißt’l‘ in file1.txt und’i‘ in file2.txt. Die Werte 154 und 151 sind die Werte für diese Bytes.

3. Wie man cmp veranlasst, einige anfängliche Bytes aus beiden Dateien zu überspringen.

Wenn Sie möchten, können Sie auch veranlassen, dass ‚cmp‘ eine bestimmte Anzahl von Initialbytes aus beiden Dateien überspringt und diese dann vergleicht. Dies kann durch Angabe der Anzahl der Bytes als Argument für die Kommandozeilenoption -i erreicht werden.

cmp -i [zu überspringende Bytes] [Datei1][Datei2]

Zum Beispiel:

cmp -i 10 file1.txt file2.txt file2.txt

Beachten Sie, dass in solchen Fällen (wo Sie -i verwenden, um Bytes zu überspringen) das Byte, bei dem der Vergleich beginnt, als Bytezahl Null behandelt wird.

Wenn Sie weitermachen, können Sie mit dem Tool auch eine unterschiedliche Anzahl von Bytes aus beiden Dateien überspringen. Dies kann auf folgende Weise geschehen:

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

Zum Beispiel:

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

Wie man cmp veranlasst, einige anfängliche Bytes aus beiden Dateien zu überspringen.

4. Wie man cmp Display-Byte-Position (und Wert) für alle unterschiedlichen Bytes macht.

Wenn Sie möchten, können Sie auch den Befehl’cmp‘ verwenden, um die Byteposition und den Bytewert für alle unterschiedlichen Bytes zu drucken. Auf diese Funktion kann über die Kommandozeilenoption -l zugegriffen werden.

cmp -l [file1] [file2]

Zum Beispiel:

cmp -l file1.txt  file2.txt

Wie man cmp Display-Byte-Position (und Wert) für alle unterschiedlichen Bytes macht.

Die erste Spalte in der Ausgabe (Beispiel siehe oben) stellt die Position (Bytezahl) unterschiedlicher Bytes dar. Die zweite Spalte stellt den Bytewert des unterschiedlichen Bytes in der ersten Datei dar, während die dritte Spalte den Bytewert des unterschiedlichen Bytes in der zweiten Datei darstellt.

5. So begrenzen Sie die Anzahl der zu vergleichenden Bytes

Das Tool ermöglicht es Ihnen auch, die Anzahl der Bytes, die Sie vergleichen möchten, zu begrenzen – so wie Sie maximal 25 oder 50 Bytes vergleichen möchten. Dies kann mit der Kommandozeilenoption -n geschehen.

$ cmp -n [Anzahl der zu vergleichenden Bytes][file1][file2][file2]

Zum Beispiel:

$ cmp -n 25 file1.txt file2.txt file2.txt

6. So zeigen Sie die Fortschrittsanzeige an, während Sie den Befehl cmp verwenden

Wenn Sie große Dateien (oder sogar Partitionen) mit ‚cmp‘ vergleichen, möchten Sie vielleicht den Fortschritt des laufenden Vergleichs sehen. Dies kann mit dem Befehl’pv‘ zusammen mit dem Befehl’cmp‘ erfolgen. Hier ist die Befehlsvorlage, die Sie verwenden können:

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

Zum Beispiel:

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

So zeigen Sie die Fortschrittsanzeige an, während Sie den Befehl cmp verwenden

Beachten Sie, dass die Datei’output.txt‘ alle Ausgaben enthält, die der Befehl’cmp‘ erzeugt. Der Fortschrittsmesser (den Sie im obigen Screenshot sehen können) wird durch den Befehl’pv‘ erzeugt.

Der Befehl ‚pv‘ ist in der Regel nicht in Linux vorinstalliert (er ist zumindest nicht auf Ubuntu vorinstalliert). Aber du kannst es einfach mit dem folgenden Befehl installieren:

sudo apt-get install pv

7. Wie man ‚cmp‘ die Ausgabe unterdrückt

Mit dem Tool können Sie auch die normale Ausgabe unterdrücken. Dies kann mit der Kommandozeilenoption -s erfolgen.

$ cmp -s [file1] [file2]

Zum Beispiel:

$ cmp -s file1.txt file2.txt

Diese Option kann nützlich sein, wenn Sie das Dienstprogramm ‚cmp‘ in Skripten verwenden. Je nachdem, ob die Dateien identisch sind oder nicht (was man durch Zugriff auf den Exit-Code des Befehls erkennen kann), können Sie beispielsweise eine benutzerdefinierte Nachricht anstelle der Ausgabe anzeigen, die das Tool normalerweise erzeugt.

Fazit

Wir haben die meisten der ‚cmp‘-Befehlsoptionen in diesem Artikel besprochen, also müssen Sie diese nur üben, um das Tool in Ihrer täglichen Arbeit zu verwenden. Im Falle von Zweifeln oder Fragen lesen Sie bitte die Man Page ‚cmp‘.

Das könnte dich auch interessieren …