Построчное объединение файлов
Иногда возникает необходимость обработать с помощью одного скрипта строки из нескольких файлов. Проще всего это сделать, предварительно объединив обрабатываемые файлы построчно. Это делается с помощью команды 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
...
- Стандартные поток ввода (stdin) и стандартные потоки вывода (stdout) и ошибок (stderr).
- Код завершения выполнения программы.
- Перенаправление вывода команды в файл.
- Перенаправление ввода команды из файла.
- Перенаправление вывода команды на ввод другой команды.
- Перенаправление вывода в никуда.
- Именованные каналы.
- Перенаправление вывода в несколько файлов.
- Перенаправление вывода на другой терминал.
- Вывод содержимого файла.
- Ввод из командной строки в файл.
- Выполнение команд из файла.
- Вывод управляющих символов и символов по кодам.
- Запуск сессии shell с перенаправлением стандартных потоков.
- Замена символов при выводе.
- Построчное объединение файлов.
- Перенос строки в терминале.