Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

uniq(1)

Name

uniq - report or filter out repeated lines in a file

Synopsis

/usr/bin/uniq [ [-c | --count] | [-d | --repeated] | [-u | --unique]
            | [-D[delimit-method] | --all-repeated[=delimit-method]] ]
     [-f  fields | --skip-fields=fields] [-s chars |--skip-chars=chars]
     [-w | --check-chars=chars] [-i | --ignore-case]
     [-z | --zero-terminated] [input_file [output_file]]
/usr/bin/uniq [ [-c | --count] | [-d | --repeated] | [-u | --unique]
            | [-D[delimit-method] | --all-repeated[=delimit-method]] ]
     [-f  fields | --skip-fields=fields] [-s chars |--skip-chars=chars]
     [-w | --check-chars=chars] [-i | --ignore-case]
     [-z | --zero-terminated] [-n] [+m][input_file [output_file]]
/usr/bin/uniq --help

Description

uniq reads an input, comparing adjacent lines, and writing one copy of each input line on the output. The second and succeeding copies of the repeated adjacent lines are not written.

If the output file, output_file, is not specified, uniq writes to standard output. If no input_file is given, or if the input_file is -, uniq reads from standard input with the start of the file is defined as the current offset.

Options

The following options are supported:

–c, –-count

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

–d, –-repeated

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

–D, –-all-repeated[=delimit-method]

Delimit groups of duplicate lines using one of the following delimit-methods:

none (default)

No delimiting is done.

prepend

Prepend each group with a delimiter.

separate

Separate groups with a delimiter.

Delimiting is done with a blank line.

–f, –skip-fields=fields

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 is used for comparison.

–i, –-ignore-case

Ignore differences in case when comparing.

–s, –-skip-chars=chars

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 are ignored. If chars specifies more characters than remain on an input line, a null string is used for comparison.

–u, –-unique

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

–w, –-check-chars=chars

Compare no more than chars characters in a line.

–z, –-zero-terminated

End lines with 0 byte, not new line.

-n

Equivalent to –f fields with fields set to n.

+m

Equivalent to –s chars with chars set to m.

–-help

Display command usage and exit.

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 is used.

output_file

A path name of the output file. If output_file is not specified, the standard output is 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:

example% uniq -c uniq.test
   2 This is a test.
   1 TEST.
   1 Computer.
   2 TEST.
   1 Software.
example%

Environment Variables

See environ(7) for descriptions of the following environment variables that affect the execution of uniq: LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and NLSPATH.

Exit Status

The following exit values are returned:

0

Successful completion.

> 0

An error occurred.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/core-os
CSI
Enabled
Interface Stability
Committed
Standard

See Also

comm(1), sort(1), attributes(7), environ(7), standards(7)