НАЗВАНИЕ
paste - слияние строк одного или нескольких файлов
СИНТАКСИС
paste файл1 файл2 ... paste -dсписок файл1 файл2 ... paste -s [-dсписок] файл1 ...
ОПИСАНИЕ
В первых двух своих формах команда paste конкатенирует
соответственные строки указанных входных файлов файл1,
файл2 и т.д. Каждый файл рассматривается как отдельный
столбец или несколько столбцов некоторой таблицы; команда paste склеивает их по горизонтали (параллельное
слияние). Если угодно, команда paste двойственна команде cat(1), которая осуществляет вертикальную конкатенацию файлов, размещая один файл вслед за другим. В последней из приведенных синтаксических форм команда paste
принимает на себя функции более старой команды с таким
же именем, соединяя последовательные строки входного
файла (последовательное слияние). Во всех случаях строки склеиваются посредством символа табуляции или, как
возможный вариант, посредством символов из списка. Команда paste помещает результирующую строку на стандартный вывод, поэтому она (команда) может служить началом
конвейера или фильтром, если вместо имени файла указать
-.
Опции имеют следующий смысл:
-dсписок | Если эта опция не указана, символы перевода строки во всех файлах, кроме последнего, (либо, в случае опции -s, в последней строке файла) заменяются символами табуляции. Непосредственно следующие за -d символы используются при конкатенации строк вместо символов табуляции. Список этих символов рассматривается как кольцевой, то есть будучи исчерпан, он используется повторно. При параллельном слиянии (то есть в отсутствие опции -s) строки из последнего файла всегда завершаются символом перевода строки, а не символами из списка. Список может содержать следующие управляющие символы: \n (перевод строки), \t (символ табуляции), \\ (обратная наклонная черта), а также \0 (пустая цепочка, а не нулевой символ). Может оказаться, что входящим в список символам приписан специальный смысл в языке shell - в этом случае потребуются кавычки (например, обратная наклонная черта должна быть задана как -d"\\\\"). |
---|---|
-s | Осуществлять слияние последовательных строк файла1, затем файла2 и т.д., а не единичных строк одновременно из всех входных файлов. Если опция -dсписок не задана, то при конкатенации используются символы табуляции. Вне зависимости от наличия или отсутствия списка каждый файл будет оканчиваться символом перевода строки. |
- | Может использоваться в роли имени файла. В этом случае строки будут считываться со стандартного ввода (приглашение не выдается). |
ПРИМЕРЫ
ls | paste
ls | paste - - -
paste -s -d"\t\n" f1
СМ. ТАКЖЕ
cut(1), grep(1), pr(1).
ДИАГНОСТИКА
СЮРПРИЗЫ
В режиме опции -s с несколькими файлами команда работает неверно.