Последовательное объединение с помощью команды paste
До сих пор мы использовали команду paste
для горизонтального объединения файлов, размещая содержимое разных файлов бок о бок. Однако команда paste
также может объединять файлы последовательно (один за другим) с использованием опции -s
. Это полезно, когда вы хотите преобразовать несколько строк файла в одну строку или когда вы хотите обработать каждый файл отдельно.
Демонстрируем последовательное объединение с использованием уже созданных нами файлов:
paste -s temperatures.txt
Опция -s
сообщает команде paste
последовательно объединить строки в каждом файле перед переходом к следующему файлу. Поскольку файл temperatures.txt
содержит только одну строку, вывод может не отличаться:
Temperature
Попробуем с файлом conditions.txt
, который содержит несколько строк:
paste -s conditions.txt
Вывод должен выглядеть следующим образом:
Pressure Humidity Wind_Speed
Обратите внимание, что все строки из файла conditions.txt
были объединены в одну строку, при этом значения разделены табуляцией. Это отличается от поведения по умолчанию команды paste
, которая объединяет строки из разных файлов.
Вы также можете использовать опцию -d
вместе с -s
, чтобы указать пользовательский разделитель для последовательного объединения:
paste -s -d ',' conditions.txt
Вывод должен быть следующим:
Pressure,Humidity,Wind_Speed
Если вы передаете несколько файлов команде paste -s
, она обрабатывает каждый файл отдельно, создавая отдельную строку вывода для каждого файла:
paste -s temperatures.txt conditions.txt dates.txt
Вывод должен быть следующим:
Temperature
Pressure Humidity Wind_Speed
Date 2023-04-01 2023-04-02 2023-04-03
Как вы можете видеть, первая строка - это объединенное содержимое файла temperatures.txt
(которое представляет собой всего одну строку), вторая строка - объединенное содержимое файла conditions.txt
, а третья строка - объединенное содержимое файла dates.txt
.
Вы также можете комбинировать опции -s
и -d
, чтобы указать разные разделители для каждого файла. Например:
paste -s -d ',:\n' temperatures.txt conditions.txt dates.txt
Опция -d ',:\n'
указывает три разделителя: запятую для первого файла, двоеточие для второго файла и символ новой строки для третьего файла (который просто переходит на следующую строку). Вывод должен быть следующим:
Temperature
Pressure:Humidity:Wind_Speed
Date 2023-04-01 2023-04-02 2023-04-03
Последовательное объединение с помощью команды paste
- это мощная функция, которая может преобразовать структуру данных, делая ее подходящей для различных требований обработки.