About
uniq stands for “unique” and filters out adjacent, duplicate lines in a file.
It's a filter progam that is part of the Gnu utility package
Articles Related
Charactertistic
- adjacent means that uniq does not detect repeated lines that are not next to each other
You may want to sort the input first, or use 'sort -u' without 'uniq'.
- comparisons honor the rules specified by 'LC_COLLATE'.
Syntax
uniq [OPTION]... [INPUT [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
-D print all duplicate lines
--all-repeated[=METHOD] 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
--group[=METHOD] 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
--help display this help and exit
--version 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.