Annotation of src/usr.bin/lam/lam.1, Revision 1.11
1.11 ! jmc 1: .\" $OpenBSD: lam.1,v 1.10 2018/07/29 11:27:14 schwarze Exp $
1.4 millert 2: .\" $NetBSD: lam.1,v 1.4 2002/02/08 01:36:25 ross Exp $
1.1 deraadt 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.
1.5 millert 15: .\" 3. Neither the name of the University nor the names of its contributors
1.1 deraadt 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: .\"
1.11 ! jmc 33: .Dd $Mdocdate: July 29 2018 $
1.4 millert 34: .Dt LAM 1
35: .Os
36: .Sh NAME
37: .Nm lam
38: .Nd laminate files
39: .Sh SYNOPSIS
40: .Nm
1.11 ! jmc 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
1.8 sobrado 45: .Ar
1.4 millert 46: .Sh DESCRIPTION
47: .Nm
1.1 deraadt 48: copies the named files side by side onto the standard output.
49: The
1.4 millert 50: .Em n Ns -th
1.1 deraadt 51: input lines from the input
1.4 millert 52: .Ar files
1.1 deraadt 53: are considered fragments of the single long
1.4 millert 54: .Em n Ns -th
1.1 deraadt 55: output line into which they are assembled.
1.4 millert 56: The name
57: .Dq \&-
58: means the standard input, and may be repeated.
59: .Pp
1.11 ! jmc 60: The options are as follows:
1.4 millert 61: .Bl -tag -width "-s sepstring"
1.11 ! jmc 62: .It Fl F\*(Baf Ar min.max
1.1 deraadt 63: Print line fragments according to the format string
1.4 millert 64: .Ar min.max ,
1.1 deraadt 65: where
1.4 millert 66: .Ar min
1.1 deraadt 67: is the minimum field width and
1.4 millert 68: .Ar max
1.1 deraadt 69: the maximum field width.
70: If
1.4 millert 71: .Ar min
1.10 schwarze 72: begins with a zero, zeros will be prepended to make up the field width
73: instead of blanks, and if it begins with a
1.4 millert 74: .Sq \&- ,
75: the fragment will be left-adjusted
1.1 deraadt 76: within the field.
1.11 ! jmc 77: .Pp
! 78: If
! 79: .Fl f
! 80: is used, it affects only the file after it;
! 81: if
! 82: .Fl F
! 83: is used, it affects all subsequent files
! 84: until it appears again uncapitalized.
! 85: .It Fl P\*(Bap Ar min.max
1.4 millert 86: Like
87: .Fl f ,
1.1 deraadt 88: but pad this file's field when end-of-file is reached
89: and other files are still active.
1.11 ! jmc 90: .Pp
! 91: If
! 92: .Fl p
! 93: is used, it affects only the file after it;
! 94: if
! 95: .Fl P
! 96: is used, it affects all subsequent files
! 97: until it appears again uncapitalized.
! 98: .It Fl S\*(Bas Ar sepstring
1.1 deraadt 99: Print
1.4 millert 100: .Ar sepstring
1.1 deraadt 101: before printing line fragments from the next file.
102: This option may appear after the last file.
1.11 ! jmc 103: .Pp
! 104: If
! 105: .Fl s
! 106: is used, it affects only the file after it;
! 107: if
! 108: .Fl S
! 109: is used, it affects all subsequent files
! 110: until it appears again uncapitalized.
! 111: .It Fl T\*(Bat Ar c
1.1 deraadt 112: The input line terminator is
1.4 millert 113: .Ar c
1.1 deraadt 114: instead of a newline.
115: The newline normally appended to each output line is omitted.
1.11 ! jmc 116: .Pp
! 117: If
! 118: .Fl t
! 119: is used, it affects only the file after it;
! 120: if
! 121: .Fl T
! 122: is used, it affects all subsequent files
! 123: until it appears again uncapitalized.
1.4 millert 124: .El
125: .Pp
1.1 deraadt 126: To print files simultaneously for easy viewing use
1.4 millert 127: .Xr pr 1 .
1.10 schwarze 128: .Sh ENVIRONMENT
129: .Bl -tag -width LC_CTYPE
130: .It Ev LC_CTYPE
131: The character encoding
132: .Xr locale 1 .
133: It determines the display widths of characters used by the
134: .Fl f
135: and
136: .Fl p
137: options.
138: If unset or set to
139: .Qq C ,
140: .Qq POSIX ,
141: or an unsupported value, each byte is regarded as a character
142: of display width 1.
143: .El
1.4 millert 144: .Sh EXAMPLES
1.6 jmc 145: Join four files together along each line:
146: .Pp
1.4 millert 147: .Dl $ lam file1 file2 file3 file4
148: .Pp
1.6 jmc 149: Merge the lines from four different files:
1.4 millert 150: .Bd -literal -offset indent
1.6 jmc 151: $ lam file1 \-S "\e
1.1 deraadt 152: " file2 file3 file4
1.4 millert 153: .Ed
154: .Pp
1.6 jmc 155: Join every two lines of a file:
156: .Pp
1.4 millert 157: .Dl $ lam \- \- \*(Lt file
158: .Pp
1.6 jmc 159: A form letter with substitutions keyed by
1.4 millert 160: .Sq \&@
1.6 jmc 161: can be done with:
162: .Pp
1.4 millert 163: .Dl $ lam \-t @ letter changes
164: .Sh SEE ALSO
165: .Xr join 1 ,
166: .Xr pr 1 ,
167: .Xr printf 1
1.9 schwarze 168: .Sh HISTORY
169: The
170: .Nm
171: utility first appeared in
172: .Bx 4.2 .
173: .Sh AUTHORS
174: .An John A. Kunze