Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

paste - Zeilen zusammenfügen

&pagelevel(4)&pagelevel

(merge corresponding or subsequent lines of files)


paste fügt jeweils die n-ten Zeilen von mehreren Dateien (Format 1) oder alle Zeilen innerhalb einer Datei (Format 2) zusammen. Das Ergebnis gibt paste auf die Standard-Ausgabe aus.


Syntax


Format 1:paste[ -d liste] datei ...
Format 2:paste -s[ -d liste] datei ...



Die n-ten Zeilen von mehreren Dateien zusammenfügen
Format 1:paste[ -d liste] datei ...


paste fügt jeweils die n-ten Zeilen der Eingabedateien zusammen. Jede Datei wird dabei als Spalte einer Tabelle interpretiert; paste setzt die Spalten nebeneinander und gibt sie auf die Standard-Ausgabe aus (siehe Beispiel 1).

Keine Option angegeben

Trennzeichen zwischen den ausgegebenen Spalten ist das Tabulatorzeichen.

-d liste

(d - delimiter)

Trennzeichen zwischen den ausgegebenen Spalten ist ein Zeichen aus liste.

paste verwendet die Zeichen in liste der Reihe nach. Ist paste beim letzten Zeichen angelangt, so geht es wieder an den Anfang der Liste. Die Zeilen der letzten Eingabedatei werden nicht mit einem Zeichen aus liste, sondern mit einem Neue-Zeile-Zeichen abgeschlossen.

Für liste geben Sie eine Folge von beliebigen Zeichen an. Sie können auch folgende Escape-Sequenzen angeben: \n (Neue-Zeile-Zeichen), \t (Tabulatorzeichen), \\ (Gegenschrägstrich) und \0 (leere Zeichenfolge, nicht das Nullzeichen). Enthält liste Escape-Sequenzen, Leerzeichen oder Sonderzeichen der Shell, dann müssen Sie liste in Anführungszeichen "..." einschließen.

datei

Name der Eingabedatei. paste in diesem Format ist nur dann sinnvoll, wenn Sie mehrere Dateien angeben.

Wenn Sie für datei einen Bindestrich - angeben, liest paste von der Standard-Eingabe.



Aufeinanderfolgende Zeilen zusammenfügen
Format 2:paste -s[ -d liste] datei ...


-s

(s - subsequent lines)

paste fügt für jede Eingabedatei die Zeilen zu einer einzigen Zeile zusammen und schreibt diese Zeile auf die Standard-Ausgabe. Innerhalb jeder Ausgabezeile werden die Zeilen der Eingabedatei standardmäßig mit einem Tabulatorzeichen getrennt (siehe Option -d). Jede Ausgabezeile wird mit einem Neue-Zeile-Zeichen abgeschlossen.

-d liste

(d - delimiter)
An die Nahtstellen zwischen den einzelnen Teilzeilen setzt paste nicht ein Tabulatorzeichen, sondern ein Zeichen aus liste.

paste verwendet die Zeichen in liste der Reihe nach. Ist paste beim letzten Zeichen angelangt, so geht es wieder an den Anfang der Liste.

Für liste geben Sie eine Folge von beliebigen Zeichen an. Sie können auch folgende Escape-Sequenzen angeben: \n (Neue Zeile), \t (Tabulatorzeichen), \\ (Gegenschrägstrich) und \0 (leere Zeichenfolge, nicht das Nullzeichen). Enthält liste Escape-Sequenzen, Leerzeichen oder Sonderzeichen der Shell, dann müssen Sie liste in Anführungszeichen einschließen: "liste".

datei

Name der Eingabedatei. Sie können mehrere Dateien angeben.
Wenn Sie für datei einen Bindestrich - angeben, liest paste von der Standard-Eingabe.

Fehler

paste: line too long

Ausgabezeilen dürfen nicht länger als 511 Zeichen werden.


paste: too many files - limit 12

Es dürfen im Format 1 nicht mehr als 12 Eingabedateien angegeben werden.


paste: cannot open datei : no such files or directory
datei ist nicht vorhanden.


paste: cannot open datei : Permission denied
Benutzer hat kein Leserecht.

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos paste:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung.

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.

Beispiele zu Format 1

Beispiel 1

Gegenüberstellen von sich entsprechenden Zeilen aus den Dateien zahlen und buchstaben:

Die Datei zahlen enthält die Zahlen von 1 bis 100:

  1
  2
  3
  .
  .
100

Die Datei buchstaben enthält die Kleinbuchstaben von a bis z:

a
b
c
.
.
z


$ paste zahlen buchstaben
  1     a

  2     b

  3     c
  .     .

  .     .

 25     y
 26     z

 27

  .
  .

100

Beispiel 2

Das aktuelle Dateiverzeichnis enthält die folgenden Dateien:

$ ls

korr

namen

plan

probe

prog.c

tst

verwalt

witze

Das folgende Kommando nummeriert diese Dateien (siehe Datei zahlen in Beispiel 1):

$ ls | paste zahlen -

  1     korr

  2     namen
  3     plan

  4     probe

  5     prog.c
  6     tst

  7     verwalt

  8     witze

  9
 10

  .

  .
100

Siehe auch Beispiel 3

Beispiel 3

Das aktuelle Dateiverzeichnis enthält dieselben Dateien wie in Beispiel 2. Das folgende Kommando gibt den Inhalt des aktuellen Dateiverzeichnisses dreispaltig aus. Bündige Spalten erhalten Sie allerdings nur, wenn die Dateinamen nicht über den nächsten Tabulatorstop hinausreichen.

$ ls | paste - - -

korr    namen   plan
probe   prog.c  tst

verwalt witze

Wie kommt die Ausgabe zustande? Vergleichen Sie das soeben eingegebene Kommando mit dem Kommando

$ paste datei1 datei2 datei3

Hier liest paste zuerst die ersten Zeilen aus allen drei Dateien und fügt sie zu einer Zeile zusammen. Anschließend liest paste die zweiten Zeilen usw.

Beim Kommando ls | paste - - - entspricht nun der erste Dateiname, den paste von der Standard-Eingabe liest, nämlich korr, der ersten Zeile aus datei1; der zweite Dateiname namen entspricht der ersten Zeile aus datei2 usw.

Beispiel 4

Das aktuelle Dateiverzeichnis enthält dieselben Dateien wie in Beispiel 2. Sie wollen, wie in Beispiel 3, die Dateinamen dreispaltig ausgeben; zwischen zweiter und dritter Spalte soll jedoch statt eines Tabulatorzeichens ein Doppelpunkt stehen.

$ ls | paste -d"\t:" - - -

korr    namen:plan

probe   prog.c:tst
verwalt witze:

Beispiel zu Format 2

Beispiel 5

Die Datei kunden hat folgenden Inhalt:

hinz

schmidt

koeln

kunz

schulz

bremen

nepomuk

meier

plattling

$ paste -s kunden

hinz    schmidt koeln   kunz    schulz  bremen  nepomuk meier   plattling

Das folgende Kommando fügt nur jeweils drei Zeilen der Datei kunden zusammen, da als Trennzeichen nach jeder 3. Eingabezeile ein Neue-Zeile-Zeichen angegeben ist:

$ paste -s -d"\t\t\n" kunden
hinz    schmidt koeln

kunz    schulz  bremen

nepomuk meier   plattling

Siehe auch

cut, grep, pr