Der Befehl paste kombiniert Zeilen zu Spalten. Standardmäßig nimmt er aus jeder Eingabedatei eine Zeile, verbindet diese Zeilen mit einem Tabulator und wiederholt den Vorgang, bis alle Eingaben ihr Dateiende erreicht haben.
Text-Fu · Lektion 7
paste
Lerne, entsprechende Zeilen zusammenzuführen oder Zeilen mit einstellbaren Trennzeichen zu serialisieren.
Dateien nebeneinander zusammenführen
Erstelle zwei kleine Dateien:
$ printf 'alice\nbob\n' > names.txt
$ printf 'admin\nviewer\n' > roles.txt
Übergib beide Dateien an paste:
$ paste names.txt roles.txt
alice admin
bob viewer
Der sichtbare Abstand zwischen den Spalten ist ein Tabulator. Anders als cat, das vollständige Dateien nacheinander ausgibt, verbindet paste die jeweils entsprechenden Eingabezeilen.
first.txt enthält nacheinander A und B, second.txt enthält 1 und 2. Was erzeugt paste first.txt second.txt standardmäßig?
Ein Trennzeichen wählen
Mit -d LIST ersetzt du den standardmäßigen Tabulator. Für einen Doppelpunkt:
$ paste -d ':' names.txt roles.txt
alice:admin
bob:viewer
Schütze Trennzeichen mit Shell-Bedeutung durch Anführungszeichen. Enthält die Liste mehrere Zeichen, kann paste sie abwechselnd verwenden; für zwei Spalten ist ein einzelnes Zeichen am einfachsten.
Welcher Befehl verbindet entsprechende Zeilen aus names.txt und roles.txt mit einem Doppelpunkt?
Zeilen einer Datei serialisieren
Die Option -s verarbeitet jede Eingabedatei seriell und verbindet ihre Zeilen zu einer Ausgabezeile. Erstelle eine Datei mit einem Wort pro Zeile:
$ printf 'The\nquick\nbrown\nfox\n' > words.txt
$ paste -s words.txt
The quick brown fox
Kombiniere -s mit -d, um das Trennzeichen festzulegen:
$ paste -s -d ' ' words.txt
The quick brown fox
Werden mit -s mehrere Dateien angegeben, wird jede Datei zu einer eigenen Ausgabezeile.
Welcher Befehl verbindet alle Zeilen von words.txt zu einer einzigen, durch Leerzeichen getrennten Ausgabezeile?
Eingaben unterschiedlicher Länge behandeln
Besitzen parallele Eingabedateien unterschiedlich viele Zeilen, arbeitet paste bis zum Ende der längsten Datei weiter. Fehlende Werte einer kürzeren Datei werden zu leeren Feldern:
$ printf 'A\nB\nC\n' > letters.txt
$ printf '1\n2\n' > numbers.txt
$ paste -d ':' letters.txt numbers.txt
A:1
B:2
C:
Was geschieht, wenn eine an paralleles paste übergebene Datei vor einer anderen endet?
Eine Eingabe von stdin lesen
Verwende - als Dateioperanden, um an dieser Position von stdin zu lesen:
$ printf 'admin\nviewer\n' | paste -d ':' names.txt -
alice:admin
bob:viewer
Was bedeutet der Operand - in producer | paste names.txt -?
Mit dieser Übung kannst du das Zusammenführen zeilenorientierter Daten praktisch trainieren:
- Einfache Textverarbeitung – Verarbeite und analysiere Textdaten effizient mit Werkzeugen wie
tr,col,joinundpaste.
Lektion abgeschlossen
Sie haben paste abgeschlossen
Du kannst nun zeilenorientierte Eingaben mit vorhersehbarer Ausrichtung und gewählten Trennzeichen kombinieren.
Führe entsprechende Zeilen aus mehreren Dateien zusammen.
Ersetze den standardmäßigen Tabulator mit
-d.Serialisiere die Zeilen einer Datei mit
-s.Deute leere Felder aus kürzeren Eingaben.
Verwende
-, wenn eine Eingabe von stdin stammt.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen