Mit dem Befehl paste
kannst du Zeilen von Dateien horizontal zusammenführen. Es gibt Zeilen aus, die sich aus den aufeinanderfolgenden Zeilen jeder als Argument angegebenen Datei zusammensetzen, getrennt durch Tabulatoren.
In diesem Tutorial zeige ich dir, wie du den Befehl paste
anwendest.
Verwendung des Befehls paste
paste
gehört zu den weniger bekannten und genutzten Linux- und Unix-Kommandozeilenprogrammen.
Die allgemeine Syntax für den paste
-Befehl lautet wie folgt:
paste [OPTION]... [DATEI]...
Wenn du keine Eingabedateien angibst oder -
als Argument verwendest, nutzt paste
die Standardeingabe.
Angenommen, wir haben die folgenden Dateien:
Datei1:
Iron Man
Thor
Kapitän Amerika
Hulk
Spiderman
Datei2:
Schwarze Witwe
Kapitän Marvel
Dunkler Phönix
Nebula
Ein Aufruf ohne Option liest alle als Argumente angegebenen Dateien und fügt die entsprechenden Zeilen der Dateien horizontal zusammen, getrennt durch ein Leerzeichen:
paste Datei1 Datei2
Iron Man Schwarze Witwe
Thor Kapitän Marvel
Kapitän Amerika Dunkler Phönix
Hulk Nebula
Spiderman
Anstatt die Ausgabe auf dem Bildschirm anzuzeigen, kannst du sie mit den und
-Operatoren in eine Datei umleiten:
paste Datei1 Datei2 Datei3
Wenn die Datei nicht existiert, wird sie erstellt. Der -Operator überschreibt eine bestehende Datei, während der
-Operator die Ausgabe an die Datei anhängt.
Mit der Option -d
oder -delimiters
kannst du eine Liste von Zeichen angeben, die als Trennzeichen anstelle des Standardtrennzeichens TAB
verwendet werden sollen.
Jedes Begrenzungszeichen wird nacheinander verwendet. Wenn die Liste erschöpft ist, beginnt paste
wieder mit dem ersten Trennzeichen.
Um das Zeichen _
(Unterstrich) als Begrenzungszeichen anstelle von TAB
zu verwenden, gibst du ein:
paste -d '_' Datei1 Datei2
Iron Man_Black Widow
Thor_Kapitän Marvel
Kapitän Amerika_Dunkler Phönix
Hulk_Nebula
Spider Man_
Hier ist ein Beispiel für die Verwendung von zwei Trennzeichen:
paste -d '%|' Datei1 Datei2 Datei1
Die Zeilen der ersten und der zweiten Datei werden mit dem ersten Zeichen aus der Begrenzerliste getrennt. Die Zeilen der zweiten und dritten Datei werden mit dem zweiten Begrenzungszeichen getrennt.
Wenn mehr Dateien angegeben wurden, beginnt paste
wieder am Anfang der Liste.
Iron Man%Black Widow|Iron Man
Thor%Captain Marvel|Thor
Kapitän Amerika%Dark Phoenix|Kapitän Amerika
Hulk%Nebula|Hulk
Spider Man%|Spider Man
Die Option -s
oder --serial
weist paste
an, die Zeilen einer Datei auf einmal anzuzeigen, anstatt eine Zeile aus jeder Datei.
paste -s Datei1 Datei2
Der Befehl fügt alle Zeilen aus der angegebenen Datei in getrennten Zeilen ein:
Iron Man Thor Kapitän Amerika Hulk Spider Man
Schwarze Witwe Kapitän Marvel Dunkler Phönix Nebula
Wenn du die Option -z
oder --null-terminated
verwendest, benutzt paste
ein Null-Zeichen, um die Elemente abzugrenzen, anstatt des standardmäßigen Newline-Zeichens. Dieses Verhalten ist praktisch, wenn paste
in Kombination mit find -print0
und xargs -0
Befehlen verwendet wird, um Dateinamen mit Sonderzeichen zu behandeln.
Abschluss
Der Befehl paste
wird verwendet, um entsprechende Zeilen von gegebenen Dateien zusammenzuführen.
Wenn du Fragen oder Feedback hast, kannst du gerne einen Kommentar hinterlassen.