Команда Paste в Linux (Объединение Строк)

Команда Paste в Linux (Объединение Строк)

11 Января 2020 | Терминал

В этом руководстве мы объясним, как использовать команду paste.

Команда Paste в Linux (Объединение Строк)

paste это команда, которая позволяет объединять строки файлов по горизонтали. Он выводит строки, состоящие из последовательно соответствующих строк каждого файла, указанного в качестве аргумента, разделенных табуляцией.


Как использовать paste команду

paste является одной из малоизвестных и используемых утилит командной строки для Linux и Unix.

Общий синтаксис paste команды выглядит следующим образом:

paste [OPTION].. [FILE]...

Если входные файлы не предоставлены или когда -задано в качестве аргумента, paste используется стандартный ввод.

Предположим, у нас есть следующие файлы:

file1
Iron Man
Thor
Captain America
Hulk
Spider Man

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


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...