Linux / Befehl paste: Entsprechende Zeilen nebeneinander verbinden
paste nimmt die entsprechenden Zeilen aus mehreren Dateien und fügt sie nebeneinander zu einer einzigen Zeile zusammen. Das Standard-Trennzeichen ist ein Tabulator, und es kann auch verwendet werden, um vertikal gestapelte Werte in eine einzige Zeile zu verwandeln.
Im Gegensatz zu cat, das Dateiinhalte vertikal zusammenführt, fügt paste die ersten Zeilen zusammen, die zweiten Zeilen zusammen und so weiter. Wenn die Dateilängen unterschiedlich sind, wird die kürzere mit leeren Feldern aufgefüllt.
Grundlegende Syntax
paste [option] [file...]
Installierte Implementierungen und Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung auf dem aktuellen System mit man paste.
Beispiele
Zwei Dateien nach Spalten kombinieren
Fügen Sie die entsprechende Zeile aus der zweiten Datei neben jede Zeile der ersten Datei an.
paste names.txt scores.txt
Geben Sie einen Trenner an
Verwenden Sie einen Doppelpunkt anstelle eines Tabs, um Werte aus den beiden Dateien zu trennen.
paste -d ':' names.txt scores.txt
Eine Datei in eine Zeile ändern
-s liest die Datei kontinuierlich und fügt die Zeilen horizontal zusammen.
paste -s -d ',' names.txt
Zeilen von zwei Eingaben kombinieren
Dieser Befehl platziert die ersten Zeilen von zwei Dateien nebeneinander, die zweiten Zeilen nebeneinander und so weiter. Das untenstehende Beispiel erstellt keine tatsächlichen Dateien, da es Prozesssubstitution in Bash verwendet.
paste -d, <(printf 'Ana\nBob\n') <(printf '7\n12\n')
Beispielausgabe:
Ana,7 Bob,12
Im Gegensatz zu join, das Zeilen anhand eines gemeinsamen Schlüssels abgleicht, richtet paste die Zeilen nach Position aus. Wenn eine Eingabe weniger Zeilen hat, werden die fehlenden Felder mit leeren Werten gefüllt. In Umgebungen, die keine Prozesssubstitution unterstützen, wie zum Beispiel reine POSIX-Shells, bereiten Sie die beiden Eingaben als temporäre Dateien vor.
Hauptoptionen und Format
| Optionen/Format | Beschreibung |
|---|---|
-d list |
Legt das Trennzeichen fest, das an der Verbindungsposition verwendet wird. |
-s |
Fasst Zeilen aus jeder Datei nacheinander zu einer Zeile zusammen. |
- |
Verwendet die Standardeingabe anstelle von Dateiargumenten. |
Vorsichtsmaßnahmen bei der Verwendung
Überprüfen Sie zuerst, ob die entsprechenden Zeilen zweier Dateien dasselbe Objekt betreffen. Wenn die Reihenfolge der Zeilen unterschiedlich ist, können falsche Werte nebeneinander stehen, ohne dass ein Fehler entsteht. Wenn Sie Zeilen mit einem gemeinsamen Schlüssel verbinden müssen, überprüfen Sie die Sortierbedingung und verwenden Sie dann join.
Häufig gestellte Fragen
Was ist der Unterschied zwischen paste und join?
paste fügt Zeilen entsprechend ihrer Zeilennummern an, während join Zeilen verbindet, die denselben Wert in einem gemeinsamen Feld haben.
Offizielle Dokumentation
Sie können das genaue Verhalten der Optionen und die Unterschiede zwischen den Implementierungen in der offiziellen Dokumentation zu paste nachsehen.




