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