xref: /openbsd/usr.bin/lam/lam.1 (revision 09467b48)
1.\"	$OpenBSD: lam.1,v 1.10 2018/07/29 11:27:14 schwarze 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: July 29 2018 $
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 Ar min.max
42.Op Fl p Ar min.max
43.Op Fl s Ar sepstring
44.Op Fl t 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
60Normally, each option affects only the
61.Ar file
62after it.
63If the option letter is capitalized it affects all subsequent files
64until it appears again uncapitalized.
65The options are described below.
66.Bl -tag -width "-s sepstring"
67.It Fl f Ar min.max
68Print line fragments according to the format string
69.Ar min.max ,
70where
71.Ar min
72is the minimum field width and
73.Ar max
74the maximum field width.
75If
76.Ar min
77begins with a zero, zeros will be prepended to make up the field width
78instead of blanks, and if it begins with a
79.Sq \&- ,
80the fragment will be left-adjusted
81within the field.
82.It Fl p Ar min.max
83Like
84.Fl f ,
85but pad this file's field when end-of-file is reached
86and other files are still active.
87.It Fl s Ar sepstring
88Print
89.Ar sepstring
90before printing line fragments from the next file.
91This option may appear after the last file.
92.It Fl t Ar c
93The input line terminator is
94.Ar c
95instead of a newline.
96The newline normally appended to each output line is omitted.
97.El
98.Pp
99To print files simultaneously for easy viewing use
100.Xr pr 1 .
101.Sh ENVIRONMENT
102.Bl -tag -width LC_CTYPE
103.It Ev LC_CTYPE
104The character encoding
105.Xr locale 1 .
106It determines the display widths of characters used by the
107.Fl f
108and
109.Fl p
110options.
111If unset or set to
112.Qq C ,
113.Qq POSIX ,
114or an unsupported value, each byte is regarded as a character
115of display width 1.
116.El
117.Sh EXAMPLES
118Join four files together along each line:
119.Pp
120.Dl $ lam file1 file2 file3 file4
121.Pp
122Merge the lines from four different files:
123.Bd -literal -offset indent
124$ lam file1 \-S "\e
125" file2 file3 file4
126.Ed
127.Pp
128Join every two lines of a file:
129.Pp
130.Dl $ lam \- \- \*(Lt file
131.Pp
132A form letter with substitutions keyed by
133.Sq \&@
134can be done with:
135.Pp
136.Dl $ lam \-t @ letter changes
137.Sh SEE ALSO
138.Xr join 1 ,
139.Xr pr 1 ,
140.Xr printf 1
141.Sh HISTORY
142The
143.Nm
144utility first appeared in
145.Bx 4.2 .
146.Sh AUTHORS
147.An John A. Kunze
148