BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Textdateien zeilenweise verbinden

Möchte man mehrere Textdateien miteinander zeilenweise verbinden, kann man dazu paste verwenden. Im folgenden Beispiel werden zwei Dateien mit je drei Zeilen verbunden:

# cat datei1
Zeile 1.1
Zeile 1.2
Zeile 1.3
# cat datei2
Zeile 2.1
Zeile 2.2
Zeile 2.3
# paste datei1 datei2
Zeile 1.1 Zeile 2.1
Zeile 1.2 Zeile 2.2
Zeile 1.3 Zeile 2.3

Auch kann die Ausgabe eines Befehls mit paste spaltenweise dargestellt werden. Folgendes Beispiel zeigt die Ausgabe von ls in drei Spalten an:

# ls
datei0  datei1  datei2  datei3  datei4  datei5  datei6  datei7  datei8  datei9
# ls | paste - - -
datei0  datei1  datei2
datei3  datei4  datei5
datei6  datei7  datei8
datei9

Mit der -s Option können alle Zeilenumbrüche in einer Datei in Tabulatoren umgewandelt werden:

# cat datei1
Zeile 1.1
Zeile 1.2
Zeile 1.3
# paste -s datei1
Zeile 1.1  Zeile 1.2  Zeile 1.3

Verwendet man die -d Option, kann angegeben werden, wie die Zeilenumbrüche ersetzt werden sollen. Im folgenden Beispiel wird der erste Zeilenumbruch in einen Tabulator, der zweite in einen Zeilenumbruch umgewandelt:

# cat datei1
Zeile 1.1
Zeile 1.2
Zeile 1.3
Zeile 1.4
Zeile 1.5
Zeile 1.6
Zeile 1.7
Zeile 1.8
Zeile 1.9
Zeile 1.0
# paste -s -d '\t\n' datei1
Zeile 1.1       Zeile 1.2
Zeile 1.3       Zeile 1.4
Zeile 1.5       Zeile 1.6
Zeile 1.7       Zeile 1.8
Zeile 1.9       Zeile 1.0

Sowohl auf FreeBSD als auch auf OpenBSD ist paste im Basissystem vorhanden. Mehr Informationen zu paste findet man in der Manpage paste(1).

 Permalink