paste(P)                                               paste(P)





NAME
       paste - merge corresponding or subsequent lines of files

SYNOPSIS
       paste [-s][-d list] file...

DESCRIPTION
       The paste utility shall  concatenate  the  corresponding
       lines  of the given input files, and write the resulting
       lines to standard output.

       The default operation of  paste  shall  concatenate  the
       corresponding lines of the input files. The <newline> of
       every line except the line  from  the  last  input  file
       shall be replaced with a <tab>.

       If  an  end-of-file condition is detected on one or more
       input files, but not all input files, paste shall behave
       as  though empty lines were read from the files on which
       end-of-file was detected, unless the -s option is speci-
       fied.

OPTIONS
       The  paste utility shall conform to the Base Definitions
       volume of IEEE Std 1003.1-2001,  Section  12.2,  Utility
       Syntax Guidelines.

       The following options shall be 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 delim-
              iters to use, instead of the  default  <tab>,  to
              replace  the  <newline>  of  the input lines. The
              elements in list shall be used  circularly;  that
              is,  when the list is exhausted the first element
              from the list is reused. When the  -s  option  is
              specified:

              The  last  <newline> in a file shall not be modi-
              fied.

              The delimiter shall be reset to the first element
              of list after each file operand is processed.

       When the -s option is not specified:

              The  <newline>s in the file specified by the last
              file operand shall not be modified.

              The delimiter shall 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  shall be used to represent the
       following delimiter characters:

       \n     <newline>.

       \t     <tab>.

       \\     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 (see the Base Definitions
              volume  of   IEEE Std 1003.1-2001,   Chapter   7,
              Locale), 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>
              of every line except the last line in each  input
              file  shall  be  replaced  with the <tab>, unless
              otherwise specified by the -d option.


OPERANDS
       The following operand shall be supported:

       file   A pathname of an input file. If '-' is  specified
              for  one or more of the files, the standard input
              shall be used; the standard input shall  be  read
              one line at a time, circularly, for each instance
              of '-' . Implementations shall support pasting of
              at least 12 file operands.


STDIN
       The  standard  input  shall  be used only if one or more
       file operands is '-' . See the INPUT FILES section.

INPUT FILES
       The input files shall be text files,  except  that  line
       lengths shall be unlimited.

ENVIRONMENT VARIABLES
       The  following  environment  variables  shall affect the
       execution of paste:

       LANG   Provide a default value for the internationaliza-
              tion  variables  that are unset or null. (See the
              Base Definitions volume of  IEEE Std 1003.1-2001,
              Section  8.2,  Internationalization Variables for
              the precedence of internationalization  variables
              used  to  determine  the  values  of locale cate-
              gories.)

       LC_ALL If set to a non-empty string value, override  the
              values  of  all  the  other  internationalization
              variables.

       LC_CTYPE
              Determine the locale for  the  interpretation  of
              sequences  of  bytes  of  text data as characters
              (for example, single-byte as  opposed  to  multi-
              byte characters in arguments and input files).

       LC_MESSAGES
              Determine  the  locale  that  should  be  used to
              affect the format and contents of diagnostic mes-
              sages written to standard error.

       NLSPATH
              Determine  the  location  of message catalogs for
              the processing of LC_MESSAGES .


ASYNCHRONOUS EVENTS
       Default.

STDOUT
       Concatenated lines of input files shall be separated  by
       the  <tab> (or other characters under the control of the
       -d option) and terminated by a <newline>.

STDERR
       The standard error shall be  used  only  for  diagnostic
       messages.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       None.

EXIT STATUS
       The following exit values shall be returned:

        0     Successful completion.

       >0     An error occurred.


CONSEQUENCES OF ERRORS
       If  one or more input files cannot be opened when the -s
       option is not specified, a diagnostic message  shall  be
       written  to  standard error, but no output is written to
       standard output. If the  -s  option  is  specified,  the
       paste   utility   shall  provide  the  default  behavior
       described in Utility Description Defaults .

       The following sections are informative.

APPLICATION USAGE
       When the escape sequences of  the  list  option-argument
       are  used in a shell script, they must be quoted; other-
       wise, the shell treats the '\' as a special character.

       Conforming applications should  only  use  the  specific
       backslash escaped delimiters presented in this volume of
       IEEE Std 1003.1-2001. Historical  implementations  treat
       '\x'  ,  where  'x'  is  not  in this list, as 'x' , but
       future implementations are free to expand this  list  to
       recognize other common escapes similar to those accepted
       by printf and other standard utilities.

       Most of the standard utilities work on text  files.  The
       cut  utility  can  be  used to turn files with arbitrary
       line lengths into a set of  text  files  containing  the
       same  data.  The paste utility can be used to create (or
       recreate) files with arbitrary line lengths.  For  exam-
       ple, if file contains long lines:


              cut -b 1-500 -n file > file1
              cut -b 501- -n file > file2

       creates  file1  (a  text file) with lines no longer than
       500 bytes (plus the <newline>) and file2  that  contains
       the  remainder of the data from file. Note that file2 is
       not a text file if there are  lines  in  file  that  are
       longer  than  500  + {LINE_MAX} bytes. The original file
       can be recreated from file1 and file2 using the command:


              paste -d "\0" file1 file2 > file

       The commands:


              paste -d "\0" ...
              paste -d "" ...

       are not necessarily equivalent; the latter is not speci-
       fied by this  volume  of  IEEE Std 1003.1-2001  and  may
       result  in  an error. The construct '\0' is used to mean
       "no separator" because historical versions of paste  did
       not follow the syntax guidelines, and the command:


              paste -d"" ...

       could not be handled properly by getopt().

EXAMPLES
       Write out a directory in four columns:


              ls | paste - - - -

       Combine pairs of lines from a file into single lines:


              paste -s -d "\t\n" file

RATIONALE
       None.

FUTURE DIRECTIONS
       None.

SEE ALSO
       Utility Description Defaults , cut , grep , pr

COPYRIGHT
       Portions  of  this  text are reprinted and reproduced in
       electronic form from  IEEE  Std  1003.1,  2003  Edition,
       Standard  for Information Technology -- Portable Operat-
       ing System Interface (POSIX), The Open Group Base Speci-
       fications Issue 6, Copyright (C) 2001-2003 by the Insti-
       tute of Electrical and Electronics  Engineers,  Inc  and
       The  Open Group. In the event of any discrepancy between
       this version and the original IEEE and  The  Open  Group
       Standard,  the original IEEE and The Open Group Standard
       is the referee document. The original  Standard  can  be
       obtained        online        at        http://www.open-
       group.org/unix/online.html .



POSIX                         2003                     paste(P)
