
paste — это команда, позволяющая объединять строки файлов по горизонтали. Она выводит строки, состоящие из последовательно соответствующих строк каждого файла, указанного в качестве аргумента, разделенных символами табуляции.
В этом уроке мы объясним, как использовать команду paste .
Как использовать команду paste
paste — одна из малоизвестных и используемых утилит командной строки Linux и Unix.
Общий синтаксис команды paste следующий:
paste [ OPTION ] .. [ FILE ] ...
Если входные файлы не указаны или в качестве аргумента задан символ - , то paste использует стандартный ввод.
Предположим, у нас есть следующие файлы:
файл1
Iron Man Thor Captain America Hulk Spider Man
файл2
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 используется для объединения соответствующих строк указанных файлов.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства