[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] Der Befehl `paste` gibt - ähnlich wie [:cat:] - die Eingabedateien weitgehend unverändert auf die Standardausgabe aus, hängt sie allerdings nicht einfach hintereinander, sondern kombiniert Zeilen der Eingaben spaltenweise. Er kennt dabei zwei Betriebsarten: 1. Alle Zeilen der Eingabedateien mit der selben Zeilennummer werden zu einer Zeile der Ausgabe kombiniert und mit je einem Zeichen getrennt. 1. Alle Zeilen einer Ausgabedatei werden zu einer einzigen Zeile der Ausgabe kombiniert (wieder mit einem Trennzeichen), bevor die nächste Datei ausgegeben wird. Das Standardtrennzeichen ist ein Tab. * Beispiel zu 1: {{{#!vorlage Befehl paste <(seq 1 5) <(seq 11 15) <(seq 21 25) }}} {{{ 1 11 21 2 12 22 3 13 23 4 14 24 5 15 25 }}} * Beispiel zu 2: {{{#!vorlage Befehl paste -s <(seq 1 5) <(seq 11 15) <(seq 21 25) }}} {{{ 1 2 3 4 5 11 12 13 14 15 21 22 23 24 25 }}} {{{#!vorlage Hinweis Das Programm [:seq:] gibt die Zahlen im angegebenen Bereich aus. Die spezielle Umleitung `<(Befehl)` liefert einen Dateinamen, über den die Ausgabe des Kommandos gelesen werden kann (spezielles, sehr praktisches Feature einiger Shells, z.B. [:Bash:] und [:Zsh:]). }}} Der Befehl [:cut:] ist gewissermaßen die Umkehroperation zu `paste`, da damit einzelne Spalten aus einer Eingabe heraus gelöst werden können. = Installation = Das Programm '''paste''' ist im essentiellen Paket * '''coreutils''' von Ubuntu enthalten und ist deshalb auf jedem System installiert. = Bedienung = Wie die meisten Kommandos werden nach dem Befehl die Optionen und danach die Dateinamen der Eingaben angegeben {{{#!vorlage Befehl paste OPTIONEN DATEI1 DATEI2 ... }}} Fehlen die Dateinamen, wird von der Standardeingabe (stdin) gelesen. Wird `-` als Dateiname benutzt, wird die Standardeingabe an dieser Stelle eingefügt (siehe [#Beispiele Beispiele]). {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> Optionen für paste +++ Verfügbare Optionen Bedeutung +++ `-s` oder `--serial` Schaltet in den zweiten Modus (s.o.). +++ `-d LIST` oder[[BR]]`--delimiters=LIST` Gibt die Trennzeichen an. Das erste Zeichen aus `LIST` wird zwischen die erste und zweite Spalte gesetzt, das zweite Zeichen zwischen die zweite und dritte usw. Werden mehr Trennzeichen benötigt als in `LIST` vorhanden, wird das letzte Zeichen in `LIST` für alle weiteren Zwischenräume verwendet. Gibt man eine leere Zeichenkette an, werden keine Trennzeichen eingefügt. +++ `--help` Ausgabe der Kommandozeilenhilfe. +++ `--version` Ausgabe der Programmversion. }}} = Beispiele = == Angabe von Trennzeichen == * {{{#!vorlage Befehl paste -d '+*' <(seq 1 5) <(seq 11 15) <(seq 21 25) }}} {{{ 1+11*21 2+12*22 3+13*23 4+14*24 5+15*25 }}} * {{{#!vorlage Befehl paste -d '+' <(seq 1 5) <(seq 11 15) <(seq 21 25) }}} {{{ 1+11+21 2+12+22 3+13+23 4+14+24 5+15+25 }}} * {{{#!vorlage Befehl paste -d '' <(seq 1 5) <(seq 11 15) <(seq 21 25) }}} {{{ 11121 21222 31323 41424 51525 }}} Bei Angabe einer leeren Zeichenkette werden keine Trennzeichen eingefügt. == Einfügen der Standardeingabe an einer bestimmten Position == * {{{#!vorlage Befehl seq 1 5 | paste - <(seq 11 15) <(seq 21 25) }}} {{{ 1 11 21 2 12 22 3 13 23 4 14 24 5 15 25 }}} * {{{#!vorlage Befehl seq 1 5 | paste <(seq 11 15) - <(seq 21 25) }}} {{{ 11 1 21 12 2 22 13 3 23 14 4 24 15 5 25 }}} * {{{#!vorlage Befehl seq 1 5 | paste <(seq 11 15) <(seq 21 25) - }}} {{{ 11 21 1 12 22 2 13 23 3 14 24 4 15 25 5 }}} == Mehrfache Angabe desselben Dateinamens == * {{{#!vorlage Befehl seq 1 5 >|x cat x }}} {{{ 1 2 3 4 5 }}} * {{{#!vorlage Befehl paste x x }}} {{{ 1 1 2 2 3 3 4 4 5 5 }}} * {{{#!vorlage Befehl seq 1 5 | paste <(seq 11 15) - <(seq 21 25) - }}} {{{ 11 1 21 2 12 3 22 4 13 5 23 14 24 15 25 }}} {{{#!vorlage Hinweis Aus der Standardeingabe kann nur ein Mal gelesen werden, deshalb verteilen sich die Zeilen. }}} = Links = * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shell-Befehle * Die umgekehrte Operation ist [:cut:]. * [wikipedia_en:Paste_(Unix):Artikel in der Wikipedia] #tag: Shell, Programmierung