Построчное объединение файлов

Иногда возникает необходимость обработать с помощью одного скрипта строки из нескольких файлов. Проще всего это сделать, предварительно объединив обрабатываемые файлы построчно. Это делается с помощью команды paste. Например:

ls -1 ~ >file1.txt
ls -1 /etc >file2.txt
paste file1.txt file2.txt | awk '/e/{print};' -

Данная последовательность команд создаёт в текущем каталоге два файла с названиями file1.txt и file2.txt. Затем выводит их содержимое, объединяя их построчно с разделителем по умолчанию (символ табуляции), и вывод перенаправляется на стандартный ввод скрипта на языке интерпретатора AWK, который выводит все строки, содержащие латинскую букву e.

Для того, чтобы использовать другой символ в качестве разделителя, команда paste вызывается с ключом -d:

paste -d"\n" file1.txt file2.txt | awk '/e/{print};' -

В данной команде те же файлы будут объединены с использованием в качестве разделителя символа переноса строки, то есть так:

1 строка файла file1.txt
1 строка файла file2.txt
2 строка файла file1.txt
2 строка файла file2.txt
3 строка файла file1.txt
3 строка файла file2.txt
...