Команда «Вставить» в Linux (объединение строк)

Команда «Вставить»

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

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

терминальная паста

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *