paste - merge corresponding or subsequent lines of files
paste [-s] [-d list] file...
The paste utility will concatenate the corresponding lines
of the given input files, and write the resulting lines to standard
output.
The default operation of paste will concatenate the
corresponding lines of the input files. The NEWLINE character of
every line except the line from the last input file will be replaced with a
TAB character.
If an EOF (end-of-file) condition is detected on one or
more input files, but not all input files, paste will behave as
though empty lines were read from the files on which EOF was
detected, unless the -s option is specified.
The following options are supported:
-d list
Unless a backslash character (\) appears in
list,
each character in
list is an element specifying a delimiter character.
If a backslash character appears in
list, the backslash character and
one or more characters following it are an element specifying a delimiter
character as described below. These elements specify one or more delimiters to
use, instead of the default
TAB character, to replace the
NEWLINE character of the input lines. The elements in
list are
used circularly. That is, when the list is exhausted, the first element from
the list is reused.
When the -s option is specified:
- o
- The last newline character in a file will not be modified.
- o
- The delimiter will be reset to the first element of list after each
file operand is processed.
When the option is not specified:
- o
- The NEWLINE characters in the file specified by the last
file will not be modified.
- o
- The delimiter will be reset to the first element of list each time
a line is processed from each file.
If a backslash character appears in
list, it and the character following
it will be used to represent the following delimiter characters:
\n
Newline character.
\t
Tab character.
\\
Backslash character.
\0
Empty string (not a null character). If \0 is
immediately followed by the character x, the character X, or any
character defined by the LC_CTYPE digit keyword, the results are
unspecified.
If any other characters follow the backslash, the results are
unspecified.
-s
Concatenate all of the lines of each separate input file
in command line order. The NEWLINE character of every line except the
last line in each input file will be replaced with the TAB character,
unless otherwise specified by the -d option.
The following operand is supported:
file
A path name of an input file. If − is
specified for one or more of the files, the standard input will be
used. The standard input will be read one line at a time, circularly, for each
instance of −. Implementations support pasting of at least 12
file operands.
See largefile(7) for the description of the behavior of
paste when encountering files greater than or equal to 2 Gbyte ( 2^31
bytes).
Example 1 Listing a directory in one column
example% ls | paste -d" " −
Example 2 Listing a directory in four columns
example% ls | paste − − − −
Example 3 Combining pairs of lines from a file into single
lines
example% paste -s -d"\ t\ n" file
See environ(7) for descriptions of the following
environment variables that affect the execution of paste:
LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and
NLSPATH.
The following exit values are returned:
0
Successful completion.
>0
An error occurred.
See attributes(7) for descriptions of the following
attributes:
ATTRIBUTE
TYPE |
ATTRIBUTE VALUE |
CSI |
Enabled |
Interface Stability |
Standard |
"line too long"
Output lines are restricted to 511 characters.
"too many files"
Except for -s option, no more than 12 input files
may be specified.
"no delimiters"
The -d option was specified with an empty
list.
"cannot open file"
The specified file cannot be opened.