# phpman > man > UNIQ(1)

> **TLDR:** Output the unique lines from an input or file.
>
- Display each line once:
  `sort {{path/to/file}} | uniq`
- Display only unique lines:
  `sort {{path/to/file}} | uniq {{-u|--unique}}`
- Display only duplicate lines:
  `sort {{path/to/file}} | uniq {{-d|--repeated}}`
- Display number of occurrences of each line along with that line:
  `sort {{path/to/file}} | uniq {{-c|--count}}`
- Display number of occurrences of each line, sorted by the most frequent:
  `sort {{path/to/file}} | uniq {{-c|--count}} | sort {{-nr|--numeric-sort --reverse}}`
- Compare only the first 10 characters on each line for uniqueness:
  `sort {{path/to/file}} | uniq {{-w|--check-chars}} 10`
- Compare text after the first 5 characters on each line for uniqueness:
  `sort {{path/to/file}} | uniq {{-s|--skip-chars}} 5`

*Source: tldr-pages*

---

[UNIQ(1)](https://www.chedong.com/phpMan.php/man/UNIQ/1/markdown)                                     User Commands                                    [UNIQ(1)](https://www.chedong.com/phpMan.php/man/UNIQ/1/markdown)



## NAME
       uniq - report or omit repeated lines

## SYNOPSIS
       **uniq** [_OPTION_]... [_INPUT_ [_OUTPUT_]]

## DESCRIPTION
       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

### -D

       **--all-repeated**[=_METHOD_]
              like  **-D**,  but  allow  separating  groups  with  an   empty   line;   METHOD={none(de‐
              fault),prepend,separate}

### -f --skip-fields
              avoid comparing the first N fields

       **--group**[=_METHOD_]
              show   all   items,   separating  groups  with  an  empty  line;  METHOD={separate(de‐
              fault),prepend,append,both}

### -i --ignore-case
              ignore differences in case when comparing

### -s --skip-chars
              avoid comparing the first N characters

### -u --unique
              only print unique lines

### -z --zero-terminated
              line delimiter is NUL, not newline

### -w --check-chars
              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.

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

## AUTHOR
       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/>>

## COPYRIGHT
       Copyright © 2020 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3  or  later
       <<https://gnu.org/licenses/gpl.html>>.
       This  is free software: you are free to change and redistribute it.  There is NO WARRANTY, to
       the extent permitted by law.

## SEE ALSO
       [comm(1)](https://www.chedong.com/phpMan.php/man/comm/1/markdown), [join(1)](https://www.chedong.com/phpMan.php/man/join/1/markdown), [sort(1)](https://www.chedong.com/phpMan.php/man/sort/1/markdown)

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



GNU coreutils 8.32                          January 2026                                     [UNIQ(1)](https://www.chedong.com/phpMan.php/man/UNIQ/1/markdown)
