Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sort(1) — sysv — mips UMIPS RISC/os 4.52

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

comm(1)

join(1)

uniq(1)



SORT(1-SysV)        RISC/os Reference Manual         SORT(1-SysV)



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 having equal keys.

     -ooutput            The argument given is the name of an
                         output file to use instead of the stan-
                         dard 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 perfor-
                         mance.  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 contin-
                         ues 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 correspond-
                         ing minimum or maximum will be used.
                         Thus, -y0 is guaranteed to start with
                         minimum memory.  By convention, -y (with
                         no argument) starts with maximum memory.



                         Printed 1/15/91                   Page 1





SORT(1-SysV)        RISC/os Reference Manual         SORT(1-SysV)



     -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 ter-
                         minate 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 characters outside the ASCII range 040-0176 in
          non-numeric comparisons.

     -M   Compare as months.  The first three non-blank charac-
          ters of the field are folded to upper case and compared
          so that ``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 over-
     ride 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)



 Page 2                  Printed 1/15/91





SORT(1-SysV)        RISC/os Reference Manual         SORT(1-SysV)



     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 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 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.




















                         Printed 1/15/91                   Page 3





SORT(1-SysV)        RISC/os Reference Manual         SORT(1-SysV)



     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

     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.





 Page 4                  Printed 1/15/91



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