Übersicht
comm ist eine Abkürzung für 'common' und ein Befehl, der speziell zum Vergleichen von Zeilen zwischen zwei bereits sortierten Dateien entwickelt wurde. Er vergleicht den Dateiinhalt parallel und zeigt die Ergebnisse in drei Spalten an. Die erste Spalte zeigt Zeilen, die nur in der ersten Datei vorkommen, die zweite Spalte Zeilen, die nur in der zweiten Datei vorkommen, und die dritte Spalte Zeilen, die in beiden Dateien gemeinsam sind. Dieser Befehl ist besonders leistungsstark, wenn es darum geht, sortierte Textdaten wie Datenbanklisten oder Benutzer-ID-Listen zu vergleichen.
Hauptmerkmale
Die Hauptmerkmale des comm-Befehls sind:
- Wird zum Vergleichen von zwei sortierten Dateien verwendet. (Wenn die Dateien nicht sortiert sind, muss zuerst der Befehl `sort` verwendet werden.)
- Gibt die Vergleichsergebnisse übersichtlich in drei Spalten aus.
- Erleichtert das schnelle Erkennen von Gemeinsamkeiten und Unterschieden in Textdaten.
- Bietet die Möglichkeit, Ausgabespalten selektiv auszublenden, was vielfältige Anwendungen ermöglicht.
comm vs. diff
comm und diff sind beides Dateivergleichstools, unterscheiden sich jedoch in ihrer Funktionsweise und ihrem Zweck.
- comm: Spezialisiert auf sortierte Dateien, gibt gemeinsame und einzigartige Zeilen in drei Spalten aus. Erkennt keine Änderungen (Modifikationen des Zeileninhalts).
- diff: Kann auch unsortierte Dateien vergleichen und gibt alle zeilenweisen Änderungen (Hinzufügungen, Löschungen, Modifikationen) detailliert aus.
Wichtige Optionen
Die Optionen des comm-Befehls werden hauptsächlich dazu verwendet, bestimmte Spalten auszublenden.
1) Steuerung der Ausgabespalten
2) Hilfe
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`comm` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Lernen Sie die Funktionen des comm-Befehls durch verschiedene Anwendungsbeispiele kennen.
Vergleich von gemeinsamen und einzigartigen Zeilen zweier Dateien
comm file1.txt file2.txt
Vergleicht den Inhalt zweier sortierter Dateien in drei Spalten.
Nur Zeilen ausgeben, die in beiden Dateien gemeinsam sind
comm -12 file1.txt file2.txt
Verwendet die Optionen `-1` und `-2`, um Zeilen auszublenden, die nur in der ersten oder zweiten Datei vorkommen, und gibt nur die gemeinsamen Zeilen aus.
Nur einzigartige Zeilen beider Dateien ausgeben
comm -3 file1.txt file2.txt
Verwendet die Option `-3`, um gemeinsame Zeilen auszublenden, und gibt nur die Zeilen aus, die in jeder Datei einzigartig sind.
Vergleich unsortierter Dateien
comm <(sort file1.txt) <(sort file2.txt)
Unsortierte Dateien können auch verglichen werden, indem der `sort`-Befehl über eine Pipe (`|`) an `comm` übergeben wird.
Installation
comm ist standardmäßig in den meisten Linux-Distributionen als Teil des `coreutils`-Pakets enthalten. Eine separate Installation ist nicht erforderlich.
Tipps & Hinweise
Hier sind wichtige Hinweise zur Verwendung des comm-Befehls zusammengefasst.
Tipps
- Bevor Sie comm verwenden, **müssen Sie den Inhalt der Dateien sortieren.** Wenn die Dateien nicht sortiert sind, erhalten Sie keine korrekten Vergleichsergebnisse.
- Um zu überprüfen, ob die Dateien sortiert sind, können Sie prüfen, ob die Ausgabe von `comm file1.txt file2.txt` von dem Erwarteten abweicht, oder die Dateien mit dem `sort`-Befehl sortieren und dann erneut vergleichen.
- Die `<(...)`-Syntax ist eine Prozesssubstitution, die das Ergebnis des `sort`-Befehls als temporäre Datei an `comm` übergibt. Diese Methode ermöglicht es, auch unsortierte Dateien einfach zu vergleichen.