Serielles Zusammenfügen mit paste
Bisher haben wir den paste-Befehl verwendet, um Dateien horizontal zusammenzuführen, indem wir den Inhalt verschiedener Dateien nebeneinander platzierten. Allerdings kann paste auch Dateien seriell (nacheinander) zusammenführen, indem die Option -s verwendet wird. Dies ist nützlich, wenn Sie mehrere Zeilen einer Datei in eine einzelne Zeile umwandeln möchten oder wenn Sie jede Datei separat verarbeiten möchten.
Lassen Sie uns die serielle Zusammenführung anhand der Dateien demonstrieren, die wir bereits erstellt haben:
paste -s temperatures.txt
Die Option -s teilt paste mit, die Zeilen innerhalb jeder Datei seriell zusammenzuführen, bevor es zur nächsten Datei geht. Da temperatures.txt nur eine Zeile hat, sieht die Ausgabe möglicherweise nicht anders aus:
Temperature
Lassen Sie uns es mit der conditions.txt-Datei versuchen, die mehrere Zeilen hat:
paste -s conditions.txt
Die Ausgabe sollte wie folgt aussehen:
Pressure Humidity Wind_Speed
Beachten Sie, dass alle Zeilen aus conditions.txt zu einer einzelnen Zeile zusammengeführt wurden, wobei die Werte durch Tabulatoren getrennt sind. Dies unterscheidet sich vom Standardverhalten von paste, das Zeilen aus verschiedenen Dateien zusammenführen würde.
Sie können auch die Option -d zusammen mit -s verwenden, um ein benutzerdefiniertes Trennzeichen für die serielle Zusammenführung anzugeben:
paste -s -d ',' conditions.txt
Die Ausgabe sollte sein:
Pressure,Humidity,Wind_Speed
Wenn Sie paste -s mehrere Dateien übergeben, verarbeitet es jede Datei separat und erzeugt für jede Datei eine separate Ausgabenzeile:
paste -s temperatures.txt conditions.txt dates.txt
Die Ausgabe sollte sein:
Temperature
Pressure Humidity Wind_Speed
Date 2023-04-01 2023-04-02 2023-04-03
Wie Sie sehen können, ist die erste Zeile der zusammengeführte Inhalt von temperatures.txt (der nur aus einer Zeile besteht), die zweite Zeile ist der zusammengeführte Inhalt von conditions.txt und die dritte Zeile ist der zusammengeführte Inhalt von dates.txt.
Sie können auch die Optionen -s und -d kombinieren, um für jede Datei ein anderes Trennzeichen anzugeben. Beispielsweise:
paste -s -d ',:\n' temperatures.txt conditions.txt dates.txt
Die Option -d ',:\n' gibt drei Trennzeichen an: ein Komma für die erste Datei, einen Doppelpunkt für die zweite Datei und einen Zeilenumbruch für die dritte Datei (der einfach zur nächsten Zeile springt). Die Ausgabe sollte sein:
Temperature
Pressure:Humidity:Wind_Speed
Date 2023-04-01 2023-04-02 2023-04-03
Die serielle Zusammenführung mit paste ist eine leistungsstarke Funktion, die die Datenlayout umgestalten kann und somit für verschiedene Verarbeitungsanforderungen geeignet ist.