---
name: "lam"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/lam"
---

# 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)](/pr/1.md).

## ENVIRONMENT

- LC\_CTYPE

  The character encoding [locale(1)](/locale/1.md). 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)](/join/1.md), [pr(1)](/pr/1.md), [printf(1)](/printf/1.md)

## HISTORY

The **lam** utility first appeared in 4.2BSD.

## AUTHORS

John A. Kunze
