{{short description|Unix text filtering utility}} {{about|the command-line utility|other uses|Uniq (disambiguation)}} {{lowercase title}} {{Infobox software | name = uniq | logo = | screenshot = | screenshot size = | caption = | author = Ken Thompson<br />(AT&T Bell Laboratories) | developer = Various open-source and commercial developers | released = {{Start date and age|1973|2}} | latest release version = | latest release date = | programming language = C | operating system = Unix, Unix-like, Plan 9, Inferno, MSX-DOS, IBM i | platform = Cross-platform | genre = Command | license = coreutils: GPLv3+<br />Plan 9: MIT License | website = {{URL|http://man7.org/linux/man-pages/man1/uniq.1.html}} }} <code>'''uniq'''</code> is a utility command on Unix, Plan 9, Inferno, and Unix-like operating systems which, when fed a text file or standard input, outputs the text with adjacent identical lines collapsed to one, unique line of text.

==Overview== The command is a kind of filter program. Typically it is used after <code>sort</code>. It can also output only the duplicate lines (with the <code>-d</code> option), or add the number of occurrences of each line (with the <code>-c</code> option). For example, the following command lists the unique lines in a file, sorted by the number of times each occurs:

<syntaxhighlight lang="sh"> $ sort file | uniq -c | sort -n </syntaxhighlight>

Using <code>uniq</code> like this is common when building pipelines in shell scripts.

==History== First appearing in Version 3 Unix,<ref name="reader">{{cite tech report | first1 = M. D. | last1 = McIlroy | authorlink1 = Doug McIlroy | year = 1987 | url = https://www.cs.dartmouth.edu/~doug/reader.pdf | title = A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 | series = CSTR | number = 139 | institution = Bell Labs}}</ref> <code>uniq</code> is now available for a number of different Unix and Unix-like operating systems. It is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX and the Single Unix Specification.<ref>{{man|cu|uniq|SUS}}</ref>

The version bundled in GNU coreutils was written by Richard Stallman and David MacKenzie.<ref>{{man|1|uniq|ManKier}}</ref>

A <code>uniq</code> command is also part of ASCII's ''MSX-DOS2 Tools'' for MSX-DOS version 2.<ref>[https://archive.org/details/MSXDOS2TOOLS MSX-DOS2 Tools User's Manual by ASCII Corporation]</ref>

The command is available as a separate package for Microsoft Windows as part of the GnuWin32 project<ref>{{Cite web |url=https://gnuwin32.sourceforge.net/packages/coreutils.htm |title=CoreUtils for Windows |access-date=2026-02-03 |archive-date=2025-07-30 |archive-url=https://web.archive.org/web/20250730094951/https://gnuwin32.sourceforge.net/packages/coreutils.htm |url-status=live }}</ref> and the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.<ref>{{Cite web |url=https://unxutils.sourceforge.net/ |title=Native Win32 ports of some GNU utilities |access-date=2026-02-03 |archive-date=2006-02-09 |archive-url=https://web.archive.org/web/20060209022842/http://unxutils.sourceforge.net/ |url-status=live }}</ref>

The {{Mono|uniq}} command has also been ported to the IBM i operating system.<ref>{{cite web |title=IBM System i Version 7.2 Programming Qshell |language=en |author=IBM |website=IBM |author-link=IBM |url=https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_74/rzahz/rzahzpdf.pdf?view=kc |access-date=2020-09-05 |archive-date=2020-09-18 |archive-url=https://web.archive.org/web/20200918130823/https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_74/rzahz/rzahzpdf.pdf?view=kc |url-status=live }}</ref>

==See also== * List of Unix commands

==References== {{Reflist}}

==External links== {{Wikibooks|Guide to Unix|Commands}} * {{man|1|uniq|Linux}} * {{man|1|uniq|Plan 9}} * {{man|1|uniq|Inferno}} * [https://sourceforge.net/projects/unxutils/ SourceForge UnxUtils – Port of several GNU utilities to Windows]

{{Unix commands}} {{Plan 9 commands}} {{Core Utilities commands}}

Category:Unix text processing utilities Category:Unix SUS2008 utilities Category:Plan 9 commands Category:Inferno (operating system) commands Category:IBM i Qshell commands