Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

comm(1)

join(1)

uniq(1)



          SORT(1)              INTERACTIVE UNIX System              SORT(1)



          NAME
               sort - sort and/or merge files

          SYNOPSIS
               sort [-cmu] [-ooutput] [-ykmem] [-zrecsz] [-dfiMnr] [-btx]
               [+pos1 [-pos2]] [files]

          DESCRIPTION
               sort sorts lines of all the named files together and writes
               the result on the standard output.  The standard input is
               read if - is used as a file name or no input files are
               named.

               Comparisons are based on one or more sort keys extracted
               from each line of input.  By default, there is one sort key,
               the entire input line, and ordering is lexicographic by
               bytes in machine-collating sequence.

               The following options alter the default behavior:

               -c   Check that the input file is sorted according to the
                    ordering rules; give no output unless the file is out
                    of sort.

               -m   Merge only, the input files are already sorted.

               -u   Unique: suppress all but one in each set of lines hav-
                    ing equal keys.

               -ooutput
                    The argument given is the name of an output file to use
                    instead of the standard output.  This file may be the
                    same as one of the inputs.  There may be optional
                    blanks between -o and output.

               -ykmem
                    The amount of main memory used by the sort has a large
                    impact on its performance.  Sorting a small file in a
                    large amount of memory is a waste.  If this option is
                    omitted, sort begins using a system default memory
                    size, and continues to use more space as needed.  If
                    this option is presented with a value, kmem, sort will
                    start using that number of kilobytes of memory, unless
                    the administrative minimum or maximum is violated, in
                    which case the corresponding extremum will be used.
                    Thus, -y0 is guaranteed to start with minimum memory.
                    By convention, -y (with no argument) starts with max-
                    imum memory.

               -zrecsz
                    The size of the longest line read is recorded in the
                    sort phase so buffers can be allocated during the merge
                    phase.  If the sort phase is omitted via the -c or -m


          Rev. Base System                                           Page 1





          SORT(1)              INTERACTIVE UNIX System              SORT(1)



                    options, a popular system default size will be used.
                    Lines longer than the buffer size will cause sort to
                    terminate abnormally.  Supplying the actual number of
                    bytes in the longest line to be merged (or some larger
                    value) will prevent abnormal termination.

               The following options override the default ordering rules.

               -d   ``Dictionary'' order: only letters, digits, and blanks
                    (spaces and tabs) are significant in comparisons.

               -f   Fold lower-case letters into upper case.

               -i   Ignore non-printable characters.

               -M   Compare as months.  The first three non-blank charac-
                    ters of the field are folded to upper case and com-
                    pared.  For example, in English the sorting order is
                    "JAN" < "FEB" < ... < "DEC".  Invalid fields compare
                    low to "JAN".  The -M option implies the -b option (see
                    the following text).

               -n   An initial numeric string, consisting of optional
                    blanks, optional minus sign, and zero or more digits
                    with optional decimal point, is sorted by arithmetic
                    value.  The -n option implies the -b option (see the
                    following text).  Note that the -b option is only
                    effective when restricted sort key specifications are
                    in effect.

               -r   Reverse the sense of comparisons.

               When ordering options appear before restricted sort key
               specifications, the requested ordering rules are applied
               globally to all sort keys.  When attached to a specific sort
               key (described in the following text), the specified order-
               ing options override all global ordering options for that
               key.

               The notation +pos1 -pos2 restricts a sort key to one begin-
               ning at pos1 and ending just before pos2.  The characters at
               position pos1 and just before pos2 are included in the sort
               key (provided that pos2 does not precede pos1).  A missing
               -pos2 means the end of the line.

               Specifying pos1 and pos2 involves the notion of a field, a
               minimal sequence of characters followed by a field separator
               or a new-line.  By default, the first blank (space or tab)
               of a sequence of blanks acts as the field separator.  All
               blanks in a sequence of blanks are considered to be part of
               the next field; for example, all blanks at the beginning of
               a line are considered to be part of the first field.  The
               treatment of field separators can be altered using the


          Rev. Base System                                           Page 2





          SORT(1)              INTERACTIVE UNIX System              SORT(1)



               options:

               -b   Ignore leading blanks when determining the starting and
                    ending positions of a restricted sort key.  If the -b
                    option is specified before the first +pos1 argument, it
                    will be applied to all +pos1 arguments.  Otherwise, the
                    b flag may be attached independently to each +pos1 or
                    -pos2 argument (see below).

               -tx  Use x as the field separator character; x is not con-
                    sidered to be part of a field (although it may be
                    included in a sort key).  Each occurrence of x is sig-
                    nificant (for example, xx delimits an empty field).

               Pos1 and pos2 each have the form m.n optionally followed by
               one or more of the flags bdfinr.  A starting position speci-
               fied by +m.n is interpreted to mean the n+1st character in
               the m+1st field.  A missing .n means .0, indicating the
               first character of the m+1st field.  If the b flag is in
               effect, n is counted from the first non-blank in the m+1st
               field; +m.0b refers to the first non-blank character in the
               m+1st field.

               A last position specified by -m.n is interpreted to mean the
               nth character (including separators) after the last charac-
               ter of the mth field.  A missing .n means .0, indicating the
               last character of the mth field.  If the b flag is in
               effect, n is counted from the last leading blank in the
               m+1st field; -m.1b refers to the first non-blank in the
               m+1st field.

               When there are multiple sort keys, later keys are compared
               only after all earlier keys compare equal.  Lines that oth-
               erwise compare equal are ordered with all bytes significant.

          EXAMPLES
               Sort the contents of infile with the second field as the
               sort key:

                    sort +1 -2 infile

               Sort, in reverse order, the contents of infile1 and infile2,
               placing the output in outfile and using the first character
               of the second field as the sort key:

                    sort -r -o outfile +1.0 -1.2 infile1 infile2

               Sort, in reverse order, the contents of infile1 and infile2
               using the first non-blank character of the second field as
               the sort key:

                    sort -r +1.0b -1.1b infile1 infile2



          Rev. Base System                                           Page 3





          SORT(1)              INTERACTIVE UNIX System              SORT(1)



               Print the password file [passwd(4)] sorted by the numeric
               user ID (the third colon-separated field):

                    sort -t: +2n -3 /etc/passwd

               Print the lines of the already sorted file infile, suppress-
               ing all but the first occurrence of lines having the same
               third field (the options -um with just one input file make
               the choice of a unique representative from a set of equal
               lines predictable):

                    sort -um +2 -3 infile

          FILES
               /usr/tmp/stm???

          SEE ALSO
               comm(1), join(1), uniq(1).

          WARNINGS
               Comments and exits with non-zero status for various trouble
               conditions (for example, when input lines are too long), and
               for disorder discovered under the -c option.

               When the last line of an input file is missing a new-line
               character, sort appends one, prints a warning message, and
               continues.

               sort does not guarantee preservation of relative line order-
               ing on equal keys.

























          Rev. Base System                                           Page 4



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026