Heim > Artikel > System-Tutorial > Vergleichen Sie zwei sortierte Dateien mit dem Befehl „comm“.
Einführung | Mit dem Befehlcomm in Linux können Benutzer zwei sortierte Dateien Zeile für Zeile vergleichen. In diesem Tutorial besprechen wir dieses Befehlszeilentool anhand einiger leicht verständlicher Beispiele. Bevor Sie beginnen, beachten Sie bitte, dass alle in diesem Tutorial erwähnten Beispiele auf der Ubuntu 16.04LTS-Version getestet wurden. .
Das folgende Beispiel zeigt Ihnen, wie der Befehl comm funktioniert. . |
Um den Befehl comm zum Vergleichen zweier sortierter Dateien zu verwenden, übergeben Sie einfach deren Namen als Argumente an den Befehl comm . Hier ist die übliche Syntax:
comm [name-of-first-file] [name-of-second-file]
Angenommen, Datei1 und Datei2 sind in diesem Fall die beiden Dateien. Ersteres enthält die folgenden Zeilen:
001 056 127 258
Letzteres enthält die folgenden Zeilen:
002 056 167 369
Zu diesem Zeitpunkt sieht die Ausgabe des Befehls comm wie folgt aus:
comm file1 file2
Sie können sehen, dass die Ausgabe 3 Spalten enthält. Die erste Spalte ist das, was nur in Datei1 enthalten ist, die zweite Spalte ist das, was nur in Datei2 enthalten ist, und schließlich ist die dritte Spalte das, was in beiden Dateien enthalten ist.
So geben Sie bestimmte Spalten in der Ausgabe des Kommunikationsbefehls nicht ausWenn Sie möchten, können Sie bestimmte Spalten in der commcommand-Ausgabe nicht ausgeben. Für diese Funktion stehen Ihnen drei Befehlszeilenoptionen zur Verfügung: -1, -2 und -3. Wie Sie vielleicht erraten haben, stellen diese Zahlen Spalten dar, die Sie nicht ausgeben möchten.
Zum Beispiel gibt der folgende Befehl die dritte Spalte im obigen Beispiel nicht aus:
comm -3 file1 file2
Sie sehen also, dass in der dritten Spalte keine Ausgabe erfolgt.
Beachten Sie, dass Sie mit einem einzigen Befehl nicht mehrere Spalten gleichzeitig ausgeben können. Zum Beispiel:
comm -12 file1 file2
Der obige Befehl gibt die erste und zweite Spalte nicht aus.
So verwenden Sie den Befehl „comm“, um zwei unsortierte Dateien zu vergleichenWie wir wissen, funktioniert comm nur bei sortierten Dateien. Wenn festgestellt wird, dass eine der Dateien nicht sortiert ist, wird in der Ausgabe eine Meldung generiert, um den Benutzer zu informieren. Zum Beispiel vertauschen wir die erste und zweite Zeile von Datei1 und vergleichen mit Datei2. Hier ist die Ausgabe des Befehls:
Sie können sehen, dass dieser Befehl eine Ausgabe erzeugt, die uns mitteilt: Datei1 ist noch nicht sortiert. Wenn Sie an dieser Stelle nicht möchten, dass das Tool prüft, ob die Eingabe sortiert ist, können Sie die Option --nocheck-order verwenden:
comm --nocheck-order file1 file2
Sie können sehen, dass die zuvor angezeigte Aufforderungsmeldung verschwunden ist.
Hinweis: Wenn Sie den Befehl comm explizit anweisen möchten, zu prüfen, ob die Eingabedatei sortiert ist, können Sie die Option --check-order verwenden.
如何用自定义字符串分隔comm 命令的输出列默认情况下,comm 命令的输出列之间是以空格分隔的。然而,如何你想使用一个自定义字符串作为分隔符,那么你可以使用 --output-delimiter选项。使用该选项时需要指定你想用来作为分隔符的字符串。
comm --output-delimiter=+ file1 file2
比如,我们使用加号来作为分隔符:
如何使 comm 的输出行以 NUL字符终止默认情况下,comm 命令的输出行以新行终止。然而,如果你想,那么你可以改为以 NUL
字符终止,只需要使用-z 选项即可:
comm -z file1 file2结论
comm 命令并没有特别多的特性性,我们在这儿已经讨论了它的绝大多数命令行选项。只需要理解和练习在这篇教程中讨论的内容,那么你便可以在日常工作中知道如何使用这个工具了。如果你有任何问题或者疑问,请前往该命令的 man 手册,或者在下面评论。
Das obige ist der detaillierte Inhalt vonVergleichen Sie zwei sortierte Dateien mit dem Befehl „comm“.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!