Hier ist eine Lösung mit awk:
awk '{print; if(getline < "file2") print}' file1
erzeugt diese Ausgabe:
line 1 from file1
line 1 from file2
line 2 from file1
line 2 from file2
...etc
Die Verwendung awk kann nützlich sein, wenn Sie der Ausgabe zusätzliche Formatierungen hinzufügen möchten, z. B. wenn Sie jede Zeile anhand der Datei beschriften möchten, aus der sie stammt:
awk '{print "1: "$0; if(getline < "file2") print "2: "$0}' file1
erzeugt diese Ausgabe:
1: line 1 from file1
2: line 1 from file2
1: line 2 from file1
2: line 2 from file2
...etc
Hinweis: In diesem Code wird davon ausgegangen, dass Datei1 größer oder gleich lang ist wie Datei2.
Wenn Datei1 mehr Zeilen als Datei2 enthält und Sie nach Abschluss leere Zeilen für Datei2 ausgeben möchten, fügen Sie dem getline-Test eine else-Klausel hinzu:
awk '{print; if(getline < "file2") print; else print ""}' file1
oder
awk '{print "1: "$0; if(getline < "file2") print "2: "$0; else print"2: "}' file1
pasteist die Anzahl der Eingabedateien begrenzt. Unter Solaris können maximal 12 Eingabedateien verwendet werden, und die Ausgabezeilen sind auf 511 Zeichen begrenzt.