xref: /openbsd/usr.bin/paste/paste.1 (revision 404b540a)
1.\"	$OpenBSD: paste.1,v 1.13 2009/02/08 17:15:10 jmc Exp $
2.\"
3.\" Copyright (c) 1989, 1990 The Regents of the University of California.
4.\" All rights reserved.
5.\"
6.\" This code is derived from software contributed to Berkeley by
7.\" Adam S. Moskowitz and the Institute of Electrical and Electronics
8.\" Engineers, Inc.
9.\"
10.\" Redistribution and use in source and binary forms, with or without
11.\" modification, are permitted provided that the following conditions
12.\" are met:
13.\" 1. Redistributions of source code must retain the above copyright
14.\"    notice, this list of conditions and the following disclaimer.
15.\" 2. Redistributions in binary form must reproduce the above copyright
16.\"    notice, this list of conditions and the following disclaimer in the
17.\"    documentation and/or other materials provided with the distribution.
18.\" 3. Neither the name of the University nor the names of its contributors
19.\"    may be used to endorse or promote products derived from this software
20.\"    without specific prior written permission.
21.\"
22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32.\" SUCH DAMAGE.
33.\"
34.\"	from: @(#)paste.1	5.6 (Berkeley) 7/27/91
35.\"
36.Dd $Mdocdate: February 8 2009 $
37.Dt PASTE 1
38.Os
39.Sh NAME
40.Nm paste
41.Nd merge corresponding or subsequent lines of files
42.Sh SYNOPSIS
43.Nm paste
44.Op Fl s
45.Op Fl d Ar list
46.Ar
47.Sh DESCRIPTION
48The
49.Nm paste
50utility concatenates the corresponding lines of the given input files,
51replacing all but the last file's newline characters with a single tab
52character, and writes the resulting lines to standard output.
53If end-of-file is reached on an input file while other input files
54still contain data, the file is treated as if it were an endless source
55of empty lines.
56.Pp
57The options are as follows:
58.Bl -tag -width Ds
59.It Fl d Ar list
60Use one or more of the provided characters to replace the newline
61characters instead of the default tab.
62The characters in
63.Ar list
64are used circularly, i.e., when
65.Ar list
66is exhausted the first character from
67.Ar list
68is reused.
69This continues until a line from the last input file (in default operation)
70or the last line in each file (using the
71.Fl s
72option) is displayed, at which
73time
74.Nm paste
75begins selecting characters from the beginning of
76.Ar list
77again.
78.Pp
79The following special characters can also be used in list:
80.Pp
81.Bl -tag -width flag -compact
82.It Li \en
83newline character
84.It Li \et
85tab character
86.It Li \e\e
87backslash character
88.It Li \e0
89empty string (not a null character)
90.El
91.Pp
92Any other character preceded by a backslash is equivalent to the
93character itself.
94.It Fl s
95Concatenate all of the lines of each separate input file in command line
96order.
97The newline character of every line except the last line in each input
98file is replaced with the tab character, unless otherwise specified by
99the
100.Fl d
101option.
102.El
103.Pp
104If
105.Dq -
106is specified for one or more of the input files, the standard
107input is used; standard input is read one line at a time, circularly,
108for each instance of
109.Dq - .
110.Pp
111.Ex -std paste
112.Sh EXAMPLES
113List the files in the current directory in three columns:
114.Pp
115.Dl "$ ls | paste - - -"
116.Pp
117Combine pairs of lines from
118.Ar file
119into single lines:
120.Pp
121.Dl "$ paste -s -d '\et\en' file"
122.Pp
123Number the lines in
124.Ar file ,
125similar to
126.Ql cat -n :
127.Pp
128.Dl "$ sed = file | paste -s -d '\et\en' - -"
129.Pp
130Create a colon-separated list of directories named
131.Pa bin ,
132suitable
133for use in the
134.Ev PATH
135environment variable:
136.Pp
137.Dl "$ find / -name bin -type d | paste -s -d : -"
138.Sh SEE ALSO
139.Xr cut 1
140.Sh STANDARDS
141The
142.Nm
143utility is compliant with the
144.St -p1003.1-2008
145specification.
146