Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sort(1) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

comm(1)

join(1)

uniq(1)



sort(1)               UNIX System V(Essential Utilities)                sort(1)


NAME
      sort - sort and/or merge files

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

DESCRIPTION
      The sort command 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 having 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 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
           maximum 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 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.




10/89                                                                    Page 1







sort(1)               UNIX System V(Essential Utilities)                sort(1)


      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 characters of the
           field are folded to upper case and compared.  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 below).

      -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 below).  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 below), the specified ordering
      options override all global ordering options for that key.

      The notation +pos1 -pos2 restricts a sort key to one beginning 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 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 considered to be
           part of a field (although it may be included in a sort key).  Each
           occurrence of x is significant (for example, xx delimits an empty
           field).



Page 2                                                                    10/89







sort(1)               UNIX System V(Essential Utilities)                sort(1)


      pos1 and pos2 each have the form m.n optionally followed by one or more
      of the flags bdfiMnr.  A starting position specified 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 character of the m th
      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 otherwise 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

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

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

      Sort the contents of the password file using the group ID (third field)
      as the primary sort key and the user ID (second field) as the secondary
      sort key:

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

      Print the lines of the already sorted file infile, suppressing 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):





10/89                                                                    Page 3







sort(1)               UNIX System V(Essential Utilities)                sort(1)


            sort -um +2 -3 infile

FILES
      /var/tmp/stm???

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

NOTES
      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 ordering on equal
      keys.





































Page 4                                                                    10/89





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