xref: /openbsd-src/usr.bin/lam/lam.1 (revision b79c304ca963f01b3438f931c5630ceaad10c21a)
1.\"	$OpenBSD: lam.1,v 1.11 2021/12/02 15:15:29 jmc Exp $
2.\"	$NetBSD: lam.1,v 1.4 2002/02/08 01:36:25 ross Exp $
3.\"
4.\" Copyright (c) 1993
5.\"	The Regents of the University of California.  All rights reserved.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\" 3. Neither the name of the University nor the names of its contributors
16.\"    may be used to endorse or promote products derived from this software
17.\"    without specific prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.\"	@(#)lam.1	8.1 (Berkeley) 6/6/93
32.\"
33.Dd $Mdocdate: December 2 2021 $
34.Dt LAM 1
35.Os
36.Sh NAME
37.Nm lam
38.Nd laminate files
39.Sh SYNOPSIS
40.Nm
41.Op Fl F\*(Baf Ar min.max
42.Op Fl P\*(Bap Ar min.max
43.Op Fl S\*(Bas Ar sepstring
44.Op Fl T\*(Bat Ar c
45.Ar
46.Sh DESCRIPTION
47.Nm
48copies the named files side by side onto the standard output.
49The
50.Em n Ns -th
51input lines from the input
52.Ar files
53are considered fragments of the single long
54.Em n Ns -th
55output line into which they are assembled.
56The name
57.Dq \&-
58means the standard input, and may be repeated.
59.Pp
60The options are as follows:
61.Bl -tag -width "-s sepstring"
62.It Fl F\*(Baf Ar min.max
63Print line fragments according to the format string
64.Ar min.max ,
65where
66.Ar min
67is the minimum field width and
68.Ar max
69the maximum field width.
70If
71.Ar min
72begins with a zero, zeros will be prepended to make up the field width
73instead of blanks, and if it begins with a
74.Sq \&- ,
75the fragment will be left-adjusted
76within the field.
77.Pp
78If
79.Fl f
80is used, it affects only the file after it;
81if
82.Fl F
83is used, it affects all subsequent files
84until it appears again uncapitalized.
85.It Fl P\*(Bap Ar min.max
86Like
87.Fl f ,
88but pad this file's field when end-of-file is reached
89and other files are still active.
90.Pp
91If
92.Fl p
93is used, it affects only the file after it;
94if
95.Fl P
96is used, it affects all subsequent files
97until it appears again uncapitalized.
98.It Fl S\*(Bas Ar sepstring
99Print
100.Ar sepstring
101before printing line fragments from the next file.
102This option may appear after the last file.
103.Pp
104If
105.Fl s
106is used, it affects only the file after it;
107if
108.Fl S
109is used, it affects all subsequent files
110until it appears again uncapitalized.
111.It Fl T\*(Bat Ar c
112The input line terminator is
113.Ar c
114instead of a newline.
115The newline normally appended to each output line is omitted.
116.Pp
117If
118.Fl t
119is used, it affects only the file after it;
120if
121.Fl T
122is used, it affects all subsequent files
123until it appears again uncapitalized.
124.El
125.Pp
126To print files simultaneously for easy viewing use
127.Xr pr 1 .
128.Sh ENVIRONMENT
129.Bl -tag -width LC_CTYPE
130.It Ev LC_CTYPE
131The character encoding
132.Xr locale 1 .
133It determines the display widths of characters used by the
134.Fl f
135and
136.Fl p
137options.
138If unset or set to
139.Qq C ,
140.Qq POSIX ,
141or an unsupported value, each byte is regarded as a character
142of display width 1.
143.El
144.Sh EXAMPLES
145Join four files together along each line:
146.Pp
147.Dl $ lam file1 file2 file3 file4
148.Pp
149Merge the lines from four different files:
150.Bd -literal -offset indent
151$ lam file1 \-S "\e
152" file2 file3 file4
153.Ed
154.Pp
155Join every two lines of a file:
156.Pp
157.Dl $ lam \- \- \*(Lt file
158.Pp
159A form letter with substitutions keyed by
160.Sq \&@
161can be done with:
162.Pp
163.Dl $ lam \-t @ letter changes
164.Sh SEE ALSO
165.Xr join 1 ,
166.Xr pr 1 ,
167.Xr printf 1
168.Sh HISTORY
169The
170.Nm
171utility first appeared in
172.Bx 4.2 .
173.Sh AUTHORS
174.An John A. Kunze
175