UNIQ(1) | General Commands Manual | UNIQ(1) |
uniq
— report or
filter out repeated lines in a file
uniq |
[-c | -d |
-D | -u ]
[-i ] [-f
num] [-s
chars] [input_file
[output_file]] |
The uniq
utility reads the specified
input_file comparing adjacent lines, and writes a copy
of each unique input line to the output_file. If
input_file is a single dash
(‘-
’) or absent, the standard input is
read. If output_file is absent, standard output is
used for output. The second and succeeding copies of identical adjacent
input lines are not written. Repeated lines in the input will not be
detected if they are not adjacent, so it may be necessary to sort the files
first.
The following options are available:
-c
,
--count
-d
,
--repeated
-D
is also specified.-D
,
--all-repeated
[septype]-d
, but
each copy of the repeated line is written). The optional
septype argument controls how to separate groups of
repeated lines in the output; it must be one of the following values:
-f
num, --skip-fields
num-i
,
--ignore-case
-s
chars, --skip-chars
chars-f
, --unique
option, the
first chars characters after the first
num fields will be ignored. Character numbers are
one based, i.e., the first character is character one.-u
,
--unique
The LANG
, LC_ALL
,
LC_COLLATE
and LC_CTYPE
environment variables affect the execution of uniq
as described in environ(7).
The uniq
utility exits 0 on
success, and >0 if an error occurs.
Assuming a file named cities.txt with the following content:
Madrid Lisbon Madrid
The following command reports three different lines since identical elements are not adjacent:
$ uniq -u cities.txt Madrid Lisbon Madrid
Sort the file and count the number of identical lines:
$ sort cities.txt | uniq -c 1 Lisbon 2 Madrid
Assuming the following content for the file cities.txt:
madrid Madrid Lisbon
Show repeated lines ignoring case sensitiveness:
$ uniq -d -i cities.txt madrid
Same as above but showing the whole group of repeated lines:
$ uniq -D -i cities.txt madrid Madrid
Report the number of identical lines ignoring the first character of every line:
$ uniq -s 1 -c cities.txt 2 madrid 1 Lisbon
The historic +
number
and -
number options have been
deprecated but are still supported in this implementation.
The uniq
utility conforms to
IEEE Std 1003.1-2001 (“POSIX.1”) as
amended by Cor. 1-2002.
A uniq
command appeared in
Version 3 AT&T UNIX.
January 12, 2024 | macOS 15.0 |