---
name: "comm"
section: "1"
platform: "macos"
package: "text_cmds"
version: "199"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/comm"
---

# comm(1)

select or reject lines common to two files

## NAME

**comm** – select or reject lines common to two files

## SYNOPSIS

**comm** \[**-123i**\] *file1* *file2*

## DESCRIPTION

The **comm** utility reads *file1* and *file2*, which should be sorted lexically, and produces three text columns as output: lines only in *file1*; lines only in *file2*; and lines in both files.

The filename \`\`-'' means the standard input.

The following options are available:

- **-1**

  Suppress printing of column 1, lines only in *file1*.

- **-2**

  Suppress printing of column 2, lines only in *file2*.

- **-3**

  Suppress printing of column 3, lines common to both.

- **-i**

  Case insensitive comparison of lines.

Each column will have a number of tab characters prepended to it equal to the number of lower numbered columns that are being printed. For example, if column number two is being suppressed, lines printed in column number one will not have any tabs preceding them, and lines printed in column number three will have one.

The **comm** utility assumes that the files are lexically sorted; all characters participate in line comparisons.

## ENVIRONMENT

The LANG, LC\_ALL, LC\_COLLATE, and LC\_CTYPE environment variables affect the execution of **comm** as described in [environ(7)](/environ/7.md).

## EXIT STATUS

The **comm** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

Assuming a file named *example.txt* with the following contents:

```
a
b
c
d
```

Show lines only in *example.txt*, lines only in stdin and common lines:

```
$ echo -e "B\nc" | comm example.txt -
        B
a
b
                c
d
```

Show only common lines doing case insensitive comparisons:

```
$ echo -e "B\nc" | comm -1 -2 -i example.txt -
b
c
```

## SEE ALSO

[cmp(1)](/cmp/1.md), [diff(1)](/diff/1.md), [sort(1)](/sort/1.md), [uniq(1)](/uniq/1.md)

## STANDARDS

The **comm** utility conforms to IEEE Std 1003.2-1992 (“POSIX.2”).

The **-i** option is an extension to the POSIX standard.

## HISTORY

A **comm** command appeared in Version 4 AT&T UNIX.
