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 используется для объединения соответствующих строк данных файлов.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.