paste(1) paste(1)
NAME
paste - Zeilen zusammenfügen
SYNTAX
paste [-d liste] [--] datei ... Format 1
paste -s [-d liste] [--] datei ... Format 2
BESCHREIBUNG
paste fügt jeweils die n-ten Zeilen von mehreren Dateien (Format 1)
oder alle Zeilen innerhalb einer Datei (Format 2) zusammen. Das Ergeb-
nis gibt paste auf die Standardausgabe aus.
OPTIONEN
Format 1: Die n-ten Zeilen von mehreren Dateien zusammenfügen
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 Standardausgabe aus
(siehe Beispiel 1).
Keine Option angegeben:
Trennzeichen zwischen den ausgegebenen Spalten ist das Tabulator-
zeichen.
-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.
-- Ende der Optionenliste. Die Angabe ist nötig, wenn datei mit -
beginnt.
datei
Name der Eingabedatei. paste in diesem Format ist nur dann sinn-
voll, wenn Sie mehrere Dateien angeben.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
paste(1) paste(1)
Wenn Sie für datei einen Bindestrich - angeben, liest paste von
der Standardeingabe.
Format 2: Aufeinanderfolgende Zeilen zusammenfügen
paste -s [-d liste] [--] datei ...
-s (s - subsequent lines) paste fügt für jede Eingabedatei die Zei-
len zu einer einzigen Zeile zusammen und schreibt diese Zeile auf
die Standardausgabe. Innerhalb jeder Ausgabezeile werden die Zei-
len 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 Teil-
zeilen setzt paste nicht ein Tabulatorzeichen, sondern ein Zei-
chen 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 Zei-
chenfolge, nicht das Nullzeichen). Enthält liste Escape-Sequen-
zen, Leerzeichen oder Sonderzeichen der Shell, dann müssen Sie
liste in Anführungszeichen einschließen: "liste".
-- Ende der Optionenliste. Die Angabe ist nötig, wenn datei mit -
beginnt.
datei
Name der Eingabedatei. Sie können mehrere Dateien angeben.
Wenn Sie für datei einen Bindestrich - angeben, liest paste von
der Standardeingabe.
FEHLERMELDUNGEN
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 wer-
den.
paste: no delimiters
Bei Option -d fehlt liste.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
paste(1) paste(1)
paste: cannot open datei
datei ist nicht vorhanden, oder der Benutzer hat kein Leserecht.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
LANG nicht oder als leere Zeichenkette definiert, verhält sich das
System so, als wäre es nicht internationalisiert.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
BEISPIELE
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
.
.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
paste(1) paste(1)
100
Beispiel 2
Das aktuelle Verzeichnis enthält die folgenden Dateien:
$ ls
korr
namen
plan
probe
prog.c
tst
verwalt
witze
Das folgende Kommando numeriert 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 Verzeichnis enthält dieselben Dateien wie in Beispiel 2.
Das folgende Kommando gibt den Inhalt des aktuellen Verzeichnisses
dreispaltig aus. Bündige Spalten erhalten Sie allerdings nur, wenn die
Dateinamen nicht über den nächsten Tabulatorstopp hinausreichen.
$ ls | paste - - -
korr namen plan
probe prog.c tst
verwalt witze
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
paste(1) paste(1)
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 Standardeingabe liest, nämlich korr, der ersten Zeile
aus datei1; der zweite Dateiname namen entspricht der ersten Zeile aus
datei2 usw.
Beispiel 4
Das aktuelle Verzeichnis 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 Tabulator-
zeichens 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:
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
paste(1) paste(1)
$ paste -s -d "\t\t\n" kunden
hinz schmidt koeln
kunz schulz bremen
nepomuk meier plattling
SIEHE AUCH
cut(1), grep(1), pr(1).
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98