1. Startseite
  2. Sonstiges
  3. Der „paste“ Befehl in Linux (Zusammenführen von Zeilen)

Der „paste“ Befehl in Linux (Zusammenführen von Zeilen)

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.

War dieser Beitrag hilfreich?

Verwandte Beiträge