Your company here — click to reach over 10,000 unique daily visitors

uniq - Man Page

report or omit repeated lines

Examples (TL;DR)




Filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output).

With no options, matching lines are merged to the first occurrence.

Mandatory arguments to long options are mandatory for short options too.

-c,  --count

prefix lines by the number of occurrences

-d,  --repeated

only print duplicate lines, one for each group


print all duplicate lines


like -D, but allow separating groups with an empty line; METHOD={none(default),prepend,separate}

-f,  --skip-fields=N

avoid comparing the first N fields


show all items, separating groups with an empty line; METHOD={separate(default),prepend,append,both}

-i,  --ignore-case

ignore differences in case when comparing

-s,  --skip-chars=N

avoid comparing the first N characters

-u,  --unique

only print unique lines

-z,  --zero-terminated

line delimiter is NUL, not newline

-w,  --check-chars=N

compare no more than N characters in lines


display this help and exit


output version information and exit

A field is a run of blanks (usually spaces and/or TABs), then non-blank characters.  Fields are skipped before chars.

'uniq' does not detect repeated lines unless they are adjacent. You may want to sort the input first, or use 'sort -u' without 'uniq'.


Written by Richard M. Stallman and David MacKenzie.

Reporting Bugs

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>

See Also

comm(1), join(1), sort(1)

Full documentation <https://www.gnu.org/software/coreutils/uniq>
or available locally via: info '(coreutils) uniq invocation'

Referenced By

bmake(1), comm(1), join(1), sort(1).

July 2024 GNU coreutils 9.5