---
name: "lam"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/lam"
---

# lam(1)

laminate files

## NAME

**lam** – laminate files

## SYNOPSIS

**lam** \[**-f** *min*.*max*\] \[**-s** *sepstring*\] \[**-t** *c*\] *file ...*

**lam** \[**-p** *min*.*max*\] \[**-s** *sepstring*\] \[**-t** *c*\] *file ...*

## DESCRIPTION

The **lam** utility 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.

- **-f** *min*.*max*, **-F** *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 added to make up the field width, and if it begins with a \`-', the fragment will be left-adjusted within the field. Using **-f** applies only to the next file while **-F** applies to all subsequent files until it appears again uncapitalized.

- **-p** *min*.*max*, **-P** *min*.*max*

  Like **-f**, but pad this file's field when end-of-file is reached and other files are still active. Using **-p** applies only to the next file while **-P** applies to all subsequent files until it appears again uncapitalized.

- **-s** *sepstring*, **-S** *sepstring*

  Print *sepstring* before printing line fragments from the next file. This option may appear after the last file. Using **-s** applies only to the next file while **-S** applies to all subsequent files until it appears again uncapitalized.

- **-t** *c*, **-T** *c*

  The input line terminator is *c* instead of a newline. The newline normally appended to each output line is omitted. Using **-t** applies only to the next file while **-T** applies to all subsequent files until it appears again uncapitalized.

To print files simultaneously for easy viewing use [pr(1)](/pr/1.md).

## EXAMPLES

The command

```
lam file1 file2 file3 file4
```

joins 4 files together along each line. To merge the lines from four different files use

```
lam file1 -S "\
" file2 file3 file4
```

Every 2 lines of a file may be joined on one line with

```
lam - - < file
```

and a form letter with substitutions keyed by \`@' can be done with

```
lam -t @ letter changes
```

## SEE ALSO

[join(1)](/join/1.md), [paste(1)](/paste/1.md), [pr(1)](/pr/1.md), [printf(3)](/printf/3.md)

## STANDARDS

Some of the functionality of **lam** is standardized as the [paste(1)](/paste/1.md) utility by IEEE Std 1003.2 (“POSIX.2”).

## HISTORY

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

## AUTHORS

John A. Kunze

## BUGS

The **lam** utility does not recognize multibyte characters.
