Ось рішення з використанням awk:
awk '{print; if(getline < "file2") print}' file1
видає такий результат:
line 1 from file1
line 1 from file2
line 2 from file1
line 2 from file2
...etc
Використання awk може бути корисним, якщо ви хочете додати додаткове форматування до виводу, наприклад, якщо ви хочете позначити кожен рядок на основі того, з якого файлу він походить:
awk '{print "1: "$0; if(getline < "file2") print "2: "$0}' file1
видає такий результат:
1: line 1 from file1
2: line 1 from file2
1: line 2 from file1
2: line 2 from file2
...etc
Примітка: цей код передбачає, що файл1 має довжину файлу2 або більшу за нього.
Якщо файл1 містить більше рядків, ніж файл2, і ви хочете вивести порожні рядки для файлу2 після його закінчення, додайте решту else до тесту getline:
awk '{print; if(getline < "file2") print; else print ""}' file1
або
awk '{print "1: "$0; if(getline < "file2") print "2: "$0; else print"2: "}' file1
pasteдосить обмежений - наприклад, на Solaris у вас може бути щонайбільше 12 вхідних файлів, а вихідні рядки обмежені 511 символами.