uniq(1)

Name

uniq– report or filter out repeated lines in a file

Synopsis

uniq [-c | -d | -u] [-ffields] [-schar]
[input_file [output_file]]

uniq [-c | -d | -u] [-n] [+ m] [input_file [output_file]]

Description

The uniq utility will read an input file comparing adjacent lines, and write one copy of each input line on the output. The second and succeeding copies of repeated adjacent input lines will not be written.

Repeated lines in the input will not be detected if they are not adjacent.

Options

The following options are supported:

-c

Precedes each output line with a count of the number of times the line occurred in the input.

-d

Suppresses the writing of lines that are not repeated in the input.

-ffields

Ignores the first fields fields on each input line when doing comparisons, where fields is a positive decimal integer. A field is the maximal string matched
by the basic regular expression:

[[:blank:]]*[^[:blank:]]*

If fields specifies more fields than appear on an input line, a null string will be used for comparison.

-schars

Ignores the first chars characters when doing comparisons, where chars is a positive decimal integer. If specified in conjunction with the -f
option, the first chars characters after the first fields fields will be ignored. If chars specifies more characters than remain on an input line, a null string will be used for comparison.

-u

Suppresses the writing of lines that are repeated in the input.

-n

Equivalent to -ffields with fields set to n.

+m

Equivalent to -schars with chars set to m.

Operands

The following operands are supported:

input_file

A path name of the input file. If input_file is not specified, or if the input_file is -, the standard input will be used.

output_file

A path name of the output file. If output_file is not specified, the standard output will be used. The results are unspecified if the file named by output_file is the
file named by input_file.

Examples

Example 1 Using the uniq command

The following example lists the contents of the uniq.test file and outputs a copy of the repeated lines.

example% cat uniq.test
This is a test.
This is a test.
TEST.
Computer.
TEST.
TEST.
Software.
example% uniq -d uniq.test
This is a test.
TEST.
example%

The next example outputs just those lines that are not repeated in the uniq.test file.

example% uniq -u uniq.test
TEST.
Computer.
Software.
example%

The last example outputs a report with each line preceded by a count of the number of times each line occurred in the file: