# paste — Zeilen spaltenweise zusammenführen

> Praxis-Guide zu paste: Zeilen aus mehreren Dateien spaltenweise nebeneinander zusammenführen, eigene Trennzeichen nutzen und CSV-Daten bauen.

Source: https://www.jpkc.com/db/cheatsheets/files-text/paste/

<!-- PROSE:intro -->
paste fügt Zeilen aus mehreren Dateien spaltenweise nebeneinander zusammen – standardmäßig getrennt durch einen Tabulator, auf Wunsch durch ein beliebiges Trennzeichen (`-d`). Damit baust du im Handumdrehen Tabellen oder CSV-Daten aus einzelnen Spaltendateien. Mit `-s` drehst du den Spieß um und fügst stattdessen alle Zeilen einer Datei zu einer einzigen Zeile zusammen. Über den Platzhalter `-` liest paste auch aus der Standardeingabe, sodass sich ein flacher Datenstrom in mehrere Spalten umbrechen lässt. Dieser Guide zeigt dir die wichtigsten Varianten und ihre Pipeline-Tricks.
<!-- PROSE:intro:end -->

## Grundlagen

`paste <file1> <file2>` — Zeilen nebeneinander zusammenführen, durch Tab getrennt.

```bash
paste names.txt scores.txt
```

`paste -d '<delim>' <file1> <file2>` — Ein eigenes Trennzeichen statt Tab verwenden.

```bash
paste -d ',' names.txt scores.txt
```

`paste -d '\n' <file1> <file2>` — Zeilen aus zwei Dateien verschränken (abwechselnd).

```bash
paste -d '\n' questions.txt answers.txt
```

`paste -s <file>` — Alle Zeilen einer Datei zu einer einzigen Zeile zusammenfügen (serieller Modus).

```bash
paste -s names.txt
```

`paste -s -d ',' <file>` — Alle Zeilen mit Komma zusammenfügen (CSV-ähnliche Ausgabe erzeugen).

```bash
paste -s -d ',' names.txt
```

## Standardeingabe verwenden

`cat <file> | paste - -` — Die Eingabe in 2 Spalten anordnen.

```bash
seq 6 | paste - -
```

`cat <file> | paste - - -` — Die Eingabe in 3 Spalten anordnen.

```bash
seq 9 | paste - - -
```

`cat <file> | paste -d ',' - -` — In 2 kommagetrennte Spalten anordnen.

```bash
seq 6 | paste -d ',' - -
```

`paste <file> -` — Eine Datei mit der Standardeingabe nebeneinander zusammenführen.

```bash
seq 3 | paste names.txt -
```

## Mehrere Trennzeichen

`paste -d ',;:' <file1> <file2> <file3> <file4>` — Mehrere Trennzeichen für jeden Spaltentrenner reihum verwenden.

```bash
paste -d ',;:' f1.txt f2.txt f3.txt f4.txt
```

`paste -d ',\n' - -` — Abwechselnd Komma und Zeilenumbruch als Trennzeichen.

```bash
seq 6 | paste -d ',\n' - -
```

`paste -d '\t|' <file1> <file2> <file3>` — Tab und dann Pipe als abwechselnde Trennzeichen verwenden.

```bash
paste -d '\t|' col1.txt col2.txt col3.txt
```

## Typische Muster

`ls | paste -s -d ' '` — Dateien in einer einzigen Zeile auflisten, durch Leerzeichen getrennt.

```bash
ls *.txt | paste -s -d ' '
```

`cut -f1 data.tsv | paste -s -d '+'` — Aus einer Zahlenspalte einen Summenausdruck erzeugen.

```bash
cut -f1 data.tsv | paste -s -d '+' | bc
```

`paste -d ',' <(cmd1) <(cmd2)` — Die Ausgabe zweier Befehle nebeneinander kombinieren.

```bash
paste -d ',' <(cut -f1 data.tsv) <(cut -f3 data.tsv)
```

`seq <n> | paste -s -d ','` — Eine kommagetrennte Zahlenfolge erzeugen.

```bash
seq 10 | paste -s -d ','
```

`awk '{print $1}' file | paste -s -d '|'` — Aus einer Spalte eine pipe-getrennte Liste erzeugen.

```bash
awk '{print $1}' users.txt | paste -s -d '|'
```

<!-- PROSE:outro -->
## Fazit

paste ist das Gegenstück zu `cut`: Während cut Spalten heraustrennt, fügt paste sie wieder zusammen. Achte darauf, dass paste rein zeilenpositionsbasiert arbeitet – es verbindet die jeweils n-te Zeile jeder Datei ohne jeden Abgleich von Schlüsseln; für inhaltlich verknüpfte Spalten brauchst du stattdessen `join`. Bei `-d` gibst du mehrere Trennzeichen als Liste an, die reihum für die Spaltenübergänge durchlaufen wird. Steuerzeichen wie Tab oder Zeilenumbruch schreibst du dabei als `'\t'` bzw. `'\n'` in einfachen Anführungszeichen, damit die Shell sie unverändert an paste weiterreicht.

## Weiterführende Links

- [ubuntuusers-Wiki: paste](https://wiki.ubuntuusers.de/paste/) – deutschsprachige Einführung mit Beispielen
- [GNU-Coreutils-Handbuch: paste](https://www.gnu.org/software/coreutils/manual/html_node/paste-invocation.html) – vollständige Optionsreferenz (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [cut](https://www.jpkc.com/db/cheatsheets/files-text/cut/) – Spalten und Felder aus Zeilen ausschneiden
- [column](https://www.jpkc.com/db/cheatsheets/files-text/column/) – Eingaben in saubere Spalten formatieren
- [tr](https://www.jpkc.com/db/cheatsheets/files-text/tr/) – einzelne Zeichen ersetzen oder löschen

