paste
— это команда, которая позволяет объединять строки файлов по горизонтали. Он выводит строки, состоящие из последовательно соответствующих строк каждого файла, указанного в качестве аргумента, разделенных табуляцией.
В этом руководстве мы объясним, как использовать команду paste
.
Как использовать команду paste
paste
— одна из малоизвестных и используемых утилит командной строки Linux и Unix.
Общий синтаксис команды paste
следующий:
paste [OPTION].. [FILE]...
Если нет входных файлов не предоставляется или когда -
задаются в качестве аргумента, paste
использует стандартный ввод.
Допустим, у нас есть следующие файлы:
Iron Man
Thor
Captain America
Hulk
Spider Man
Black Widow
Captain Marvel
Dark Phoenix
Nebula
При вызове без опции paste
прочитает все файлы, указанные в качестве аргументов, и объединит соответствующие строки файлов, разделенные пробелом, по горизонтали:
paste file1 file2
Iron Man Black Widow
Thor Captain Marvel
Captain America Dark Phoenix
Hulk Nebula
Spider Man
Вместо отображения вывода на экран вы можете перенаправить его в файл с помощью операторов >
, >>
:
paste file1 file2 > file3
Если файл не существует, он будет создан. Оператор >
перезапишет существующий файл, а оператор >>
добавит вывод в файл.
Параметр -d
, -delimiters
позволяет указать список символов, которые будут использоваться в качестве разделителей вместо разделителя TAB
по умолчанию.
Каждый разделитель используется последовательно. Когда список исчерпан, paste
начинается снова с первого символа разделителя.
Чтобы использовать символ _
(подчеркивание) в качестве разделителя вместо TAB
, введите:
paste -d '_' file1 file2
Iron Man_Black Widow
Thor_Captain Marvel
Captain America_Dark Phoenix
Hulk_Nebula
Spider Man_
Вот пример использования двух разделителей:
paste -d '%|' file1 file2 file1
Строки из первого и второго файла разделяются первым символом из списка разделителей. Вторая и третья строки файла разделяются вторым разделителем.
Если было указано больше файлов, paste
начинается снова с начала списка.
Iron Man%Black Widow|Iron Man
Thor%Captain Marvel|Thor
Captain America%Dark Phoenix|Captain America
Hulk%Nebula|Hulk
Spider Man%|Spider Man
Параметр -s
, --serial
указывает paste
отображать строки одного файла за раз вместо одной строки из каждого файла.
paste -s file1 file2
Команда объединит все строки из данного файла в отдельные строки:
Iron Man Thor Captain America Hulk Spider Man
Black Widow Captain Marvel Dark Phoenix Nebula
При использовании с параметром -z
, --zero-terminated
, paste
использует нулевой символ для разделения элементов вместо символа новой строки по умолчанию. Такое поведение удобно, когда paste
используется в сочетании с find -print0
и xargs -0
для обработки имен файлов, содержащих специальные символы.
Выводы
Команда paste
используется для объединения соответствующих строк данных файлов.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.