Reference

lam(1)

laminate files

NAME

lam – laminate files

SYNOPSIS

lam [-Ff min.max] [-Pp min.max] [-Ss sepstring] [-Tt c] file ...

DESCRIPTION

lam copies the named files side by side onto the standard output. The n-th input lines from the input files are considered fragments of the single long n-th output line into which they are assembled. The name “-” means the standard input, and may be repeated.

The options are as follows:

-Ff min.max

Print line fragments according to the format string min.max, where min is the minimum field width and max the maximum field width. If min begins with a zero, zeros will be prepended to make up the field width instead of blanks, and if it begins with a ‘-’, the fragment will be left-adjusted within the field.

If -f is used, it affects only the file after it; if -F is used, it affects all subsequent files until it appears again uncapitalized.

-Pp min.max

Like -f, but pad this file's field when end-of-file is reached and other files are still active.

If -p is used, it affects only the file after it; if -P is used, it affects all subsequent files until it appears again uncapitalized.

-Ss sepstring

Print sepstring before printing line fragments from the next file. This option may appear after the last file.

If -s is used, it affects only the file after it; if -S is used, it affects all subsequent files until it appears again uncapitalized.

-Tt c

The input line terminator is c instead of a newline. The newline normally appended to each output line is omitted.

If -t is used, it affects only the file after it; if -T is used, it affects all subsequent files until it appears again uncapitalized.

To print files simultaneously for easy viewing use pr(1).

ENVIRONMENT

LC_CTYPE

The character encoding locale(1). It determines the display widths of characters used by the -f and -p options. If unset or set to "C", "POSIX", or an unsupported value, each byte is regarded as a character of display width 1.

EXAMPLES

Join four files together along each line:

$ lam file1 file2 file3 file4

Merge the lines from four different files:

$ lam file1 -S "\
" file2 file3 file4

Join every two lines of a file:

$ lam - - file

A form letter with substitutions keyed by ‘@’ can be done with:

$ lam -t @ letter changes

SEE ALSO

join(1), pr(1), printf(1)

HISTORY

The lam utility first appeared in 4.2BSD.

AUTHORS

John A. Kunze

History

-Ff since OpenBSD 7.1; -Pp since OpenBSD 7.1; -Ss since OpenBSD 7.1; -Tt since OpenBSD 7.1.

-f until OpenBSD 7.0; -p until OpenBSD 7.0; -s until OpenBSD 7.0; -t until OpenBSD 7.0.