UNIQ(1)                         User Commands                        UNIQ(1)
NAME
       uniq - report or filter out repeated lines in a file
SYNOPSIS
   /usr/bin/uniq       /usr/bin/uniq [
-c | 
-d | 
-u] [
-f fields] [
-s char]
            [
input_file [
output_file]]       
/usr/bin/uniq [
-c | 
-d | 
-u] [
-n] [+ 
m] [
input_file [
output_file]]   
ksh93       uniq [
-cdiu] [
-D[
delimit]] [
-f fields] [
-s chars] [
-w chars]
            [
input_file [
output_file]]       
uniq [
-cdiu] [
-D[
delimit]] [
-n] [
+m] [
-w chars] [
input_file [
output_file]]
DESCRIPTION
   /usr/bin/uniq       The 
uniq utility reads an input file comparing adjacent lines and
       writes one copy of each input line on the output. The second and
       succeeding copies of repeated adjacent input lines are not written.
       Repeated lines in the input are not detected if they are not
       adjacent.   
ksh93       The 
uniq built-in in 
ksh93 is associated with the 
/bin or 
/usr/bin       path. It is invoked when 
uniq is executed without a pathname prefix
       and the pathname search finds a 
/bin/uniq or 
/usr/bin/uniq       executable.       
uniq reads an input, comparing adjacent lines, and writing one copy
       of each input line on the output. The second and succeeding copies of
       the repeated adjacent lines are not written.
       If 
output_file is not specified, 
uniq writes to standard output. If       
input_file is not specified, or if 
input_file is 
-, 
uniq reads from
       standard input, and the start of the file is defined as the current
       offset.
OPTIONS
   /usr/bin/uniq       The following options are supported by 
/usr/bin/uniq:       
-c                    Precedes each output line with a count of the number of
                    times the line occurred in the input.       
-d                    Suppresses the writing of lines that are not repeated in
                    the input.       
-f fields                    Ignores the first 
fields fields on each input line when
                    doing comparisons, where 
fields is a positive decimal
                    integer. A field is the maximal string matched by the
                    basic regular expression:
                      [[:blank:]]*[^[:blank:]]*
                    If 
fields specifies more fields than appear on an input
                    line, a null string is used for comparison.       
+m                    Equivalent to 
-s chars with 
chars set to 
m.       
-n                    Equivalent to 
-f fields with 
fields set to 
n.       
-s chars                    Ignores the first 
chars characters when doing
                    comparisons, where 
chars is a positive decimal integer.
                    If specified in conjunction with the 
-f option, the
                    first 
chars characters after the first 
fields fields is
                    ignored. If 
chars specifies more characters than remain
                    on an input line, a null string is used for comparison.       
-u                    Suppresses the writing of lines that are repeated in the
                    input.   
ksh93       The following options are supported by the 
uniq built-in command is       
ksh93:       
-c       --count                                   Outputs the number of times each line
                                   occurred along with the line.       
-d       --repeated | duplicates                                   Outputs only duplicate lines.       
-D       --all-repeated[
=delimit]
                                   Outputs all duplicate lines as a group
                                   with an empty line delimiter specified by                                   
delimit.
                                   Specify 
delimit as one of the following:                                   
none                                               Do not delimit duplicate
                                               groups.                                   
prepend                                               Prepend an empty line before
                                               each group.                                   
separate                                               Separate each group with an
                                               empty line.
                                   The value for 
delimit can be omitted. The
                                   default value is 
none.       
-f       --skip-fields=fields                                   Skips over 
fields number of fields before
                                   checking for uniqueness. A field is the
                                   minimal string matching the 
BRE                                   [[:blank:]]*[^[:blank:]]*.       
-i       --ignore-case                                   Ignore case in comparisons.       
+m                                   Equivalent to the 
-s chars option, with                                   
chars set to 
m.       
-n                                   Equivalent to the 
-f fields option, with                                   
fields set to 
n.       
-s       --skip-chars=chars                                   Skips over 
chars number of characters
                                   before checking for uniqueness.
                                   If specified with the 
-f option, the
                                   first 
chars after the first fields are
                                   ignored. If the 
chars specifies more
                                   characters than are on the line, an empty
                                   string is used for comparison.       
-u       --uniq                                   Outputs unique lines.       
-w       --check-chars=chars                                   Skips over any specified fields and
                                   characters, then compares 
chars number of
                                   characters.
OPERANDS
       The following operands are supported:       
input_file                      A path name of the input file. If 
input_file is not
                      specified, or if the 
input_file is 
-, the standard
                      input is used.       
output_file                      A path name of the output file. If 
output_file is not
                      specified, the standard output is used. The results
                      are unspecified if the file named by 
output_file is
                      the file named by 
input_file.
EXAMPLES
       Example 1: Using the uniq Command
       The following example lists the contents of the 
uniq.test file and
       outputs a copy of the repeated lines.
         example% 
cat uniq.test         This is a test.
         This is a test.
         TEST.
         Computer.
         TEST.
         TEST.
         Software.
         example% 
uniq -d uniq.test         This is a test.
         TEST.
         example%
       The next example outputs just those lines that are not repeated in
       the 
uniq.test file.
         example% 
uniq -u uniq.test         TEST.
         Computer.
         Software.
         example%
       The last example outputs a report with each line preceded by a count
       of the number of times each line occurred in the file:
         example% 
uniq -c uniq.test            2 This is a test.
            1 TEST.
            1 Computer.
            2 TEST.
            1 Software.
         example%
ENVIRONMENT VARIABLES
       See 
environ(7) for descriptions of the following environment
       variables that affect the execution of 
uniq: 
LANG, 
LC_ALL, 
LC_CTYPE,       
LC_MESSAGES, and 
NLSPATH.
EXIT STATUS
       The following exit values are returned:       
0             Successful completion.       
>0             An error occurred.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:   
/usr/bin/uniq       +--------------------+-------------------+
       |  ATTRIBUTE TYPE    |  ATTRIBUTE VALUE  |
       +--------------------+-------------------+
       |CSI                 | Enabled           |
       +--------------------+-------------------+
       |Interface Stability | Committed         |
       +--------------------+-------------------+
       |Standard            | See 
standards(7). |
       +--------------------+-------------------+   
ksh93       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | See below.      |
       +--------------------+-----------------+
       The 
ksh93 built-in binding to 
/bin and 
/usr/bin is Volatile.  The
       built-in interfaces are Uncommitted.
SEE ALSO
       comm(1), 
ksh93(1), 
sort(1), 
attributes(7), 
environ(7), 
standards(7)                                May 23, 2021                         UNIQ(1)