Annotation of researchv10no/cmd/sort/sort.1, revision 1.1.1.1

1.1       root        1: .TH SORT 1 
                      2: .CT 1 files
                      3: .SH NAME
                      4: sort \- sort and/or merge files
                      5: .SH SYNOPSIS
                      6: .B sort
                      7: [
                      8: .BI -cmusMbdf\&inrt x
                      9: ]
                     10: [
                     11: .B -o
                     12: .I output
                     13: ]
                     14: [
                     15: .I option ...
                     16: ]
                     17: [
                     18: .I file ...
                     19: ]
                     20: .SH DESCRIPTION
                     21: .I Sort\^
                     22: sorts
                     23: lines of all the
                     24: .I files
                     25: together and writes the result on
                     26: the standard output.
                     27: The name
                     28: .B -
                     29: means
                     30: the standard input.
                     31: If no input files are named, the standard input is sorted.
                     32: .PP
                     33: The default sort key is an entire line.
                     34: Default ordering is
                     35: lexicographic by bytes in machine
                     36: collating sequence.
                     37: The ordering is affected globally by the following options,
                     38: one or more of which may appear.
                     39: .TP
                     40: .B -b
                     41: Ignore leading white space (spaces and tabs) in field comparisons.
                     42: .TP
                     43: .B -d
                     44: `Phone directory' order: only letters, digits and white space
                     45: are significant in string comparisons.
                     46: .TP
                     47: .B -f
                     48: Fold lower case
                     49: letters onto upper case.
                     50: .TP
                     51: .B -i
                     52: Ignore characters outside the
                     53: .SM ASCII
                     54: range 040-0176
                     55: in string comparisons.
                     56: .TP
                     57: .B -n
                     58: An initial numeric string,
                     59: consisting of optional white space, optional sign, and
                     60: a nonempty string of digits with optional decimal point,
                     61: is sorted by value.
                     62: .TP
                     63: .B -g
                     64: Numeric, like
                     65: .BR -n ,
                     66: with
                     67: .BR e -style
                     68: exponents allowed.
                     69: .TP
                     70: .B -M
                     71: Compare as month names.
                     72: The first three
                     73: characters after optional white space
                     74: are folded to lower case and compared.
                     75: Invalid fields compare low to
                     76: .LR jan .
                     77: .TP
                     78: .B -r
                     79: Reverse the sense of comparisons.
                     80: .TP
                     81: .BI -t x\^
                     82: `Tab character' separating fields is
                     83: .IR x .
                     84: .TP
                     85: .BI -k " pos1" , pos2
                     86: Restrict the sort key to a string beginning at
                     87: .I pos1\^
                     88: and ending at
                     89: .IR pos2 .
                     90: .I Pos1\^
                     91: and
                     92: .I pos2\^
                     93: each have the form
                     94: .IB m . n ,
                     95: optionally followed by one or more of the flags
                     96: .BR Mbdfginr ;
                     97: .I m\^
                     98: counts fields from the beginning of the line and
                     99: .I n\^
                    100: counts characters from the beginning of the field.
                    101: If any flags are present they override all the global
                    102: ordering options for this key.
                    103: If
                    104: .BI \&. n\^
                    105: is missing from 
                    106: .I pos1,
                    107: it is taken to be 1; if missing from
                    108: .IR pos2, 
                    109: it is taken to be the end of the field.
                    110: If 
                    111: .I pos2
                    112: is missing, it is taken to be end of line.
                    113: .TP
                    114: .BI -a " pos1" , pos2
                    115: .IB Pos1 , pos2
                    116: designates an accumulating 
                    117: .BR -n -style
                    118: field, disjoint from the sort key.
                    119: When the keys of two records compare equal,
                    120: discard the second and replace the
                    121: accumulating field in the first with the sum of
                    122: that field in both.
                    123: The receiving field must be large enough for the sum
                    124: to fit without destroying any field separator.
                    125: The sum has a ones digit always, a decimal point if
                    126: either addend has one, a fraction part as long as
                    127: that of either addend, leading zeros padded to full
                    128: field width if either addend has a leading zero 
                    129: before the ones digit, and a
                    130: .B +
                    131: sign if either addend has a
                    132: .B +
                    133: sign and the sum is not negative.
                    134: .PP
                    135: Under option
                    136: .BI -t x\^
                    137: fields are strings separated by
                    138: .IR x ;
                    139: otherwise fields are
                    140: non-empty strings separated by white space.
                    141: White space before a field
                    142: is part of the field, except under option
                    143: .BR -b .
                    144: A
                    145: .B b
                    146: flag may be attached independently to
                    147: .IR pos1
                    148: and
                    149: .IR pos2.
                    150: .PP
                    151: When there are multiple sort keys, later keys
                    152: are compared only after all earlier keys
                    153: compare equal.
                    154: Except under option 
                    155: .BR -s ,
                    156: lines with all keys equal are ordered
                    157: with all bytes significant.
                    158: .PP
                    159: Single-letter options may be combined into a single
                    160: string, such as
                    161: .BR -cnrt: .
                    162: The option combination
                    163: .B -di
                    164: and the combination of
                    165: .B -n
                    166: with any of
                    167: .BR -diM 
                    168: are improper.
                    169: .PP
                    170: These option arguments are also understood:
                    171: .TP
                    172: .B -c
                    173: Check that the single input file is sorted according to the ordering rules;
                    174: give no output unless the file is out of sort.
                    175: .TP
                    176: .B -m
                    177: Merge; the input files are already sorted.
                    178: .TP
                    179: .B -u
                    180: Unique.  Keep only the first of two lines 
                    181: that compare equal on all keys.
                    182: Implies
                    183: .BR -s .
                    184: .TP
                    185: .B -s
                    186: Stable sort.
                    187: When all keys compare equal, preserve input order.
                    188: Unaffected by
                    189: .BR -r .
                    190: .TP
                    191: .BI -o " output
                    192: Place output in a designated file
                    193: instead of on the standard output.
                    194: This file may be the same as one of the inputs.
                    195: The option may appear among the
                    196: .I file
                    197: arguments, except after 
                    198: .BR -- .
                    199: .TP
                    200: .BI + pos1 " -" pos2
                    201: Classical alternative to
                    202: .BR -k ,
                    203: with counting from 0 instead of 1, and
                    204: .I pos2
                    205: designating next-after-last instead of last character of the key.
                    206: A missing character count in
                    207: .I pos2
                    208: means 0, which in turn excludes any 
                    209: .B -t
                    210: tab character from the end of the key.
                    211: Thus
                    212: .B "+1\ -1.3"
                    213: means the same as 
                    214: .B -k\ 2,2.3
                    215: and
                    216: .B "+1r\ -3"
                    217: means the same as
                    218: .BR "-k\ 2r,3" .
                    219: .PP
                    220: Options
                    221: .BR -a ,
                    222: .BR -g ,
                    223: .BR -M ,
                    224: and
                    225: .BR -s
                    226: are not in the Posix standard, nor are
                    227: the following tuning options.
                    228: .TP
                    229: .BI -T " tempdir
                    230: Put temporary files in
                    231: .I tempdir
                    232: rather than in
                    233: .BR /usr/tmp .
                    234: .TP
                    235: .BI -y " n"
                    236: Use up to 
                    237: .I n
                    238: bytes of internal store, or a huge number if
                    239: .IR n =0.
                    240: .TP
                    241: .B -w " n"
                    242: Merge up to
                    243: .I n
                    244: files at a time.
                    245: .ig
                    246: .TP
                    247: .BI -z recsize
                    248: Provide for abnormally large records;
                    249: useful only with
                    250: .B -c
                    251: and
                    252: .B -m
                    253: ..
                    254: .SH EXAMPLES
                    255: .TP
                    256: .B sort -u -k1f -k1 list
                    257: Print in alphabetical order all the unique spellings
                    258: in a list of words
                    259: where capitalized words differ from uncapitalized.
                    260: .TP
                    261: .B sort -t: -k3n /etc/passwd
                    262: Print the password file
                    263: .RI ( passwd (5))
                    264: sorted by userid
                    265: (the third colon-separated field).
                    266: .TP
                    267: .B sort -umM dates
                    268: Print the first instance of each month in an already sorted file.
                    269: .TP
                    270: .B sort -k1,1 -a2,2 items_and_costs
                    271: Reduce a file of items (field 1) and costs (field 2) to
                    272: a summary file of total cost per type of item.
                    273: .SH FILES
                    274: .F /usr/tmp/stm???
                    275: .SH SEE ALSO
                    276: .IR comm (1),
                    277: .IR join (1),
                    278: .IR uniq (1),
                    279: .IR look (1)
                    280: .SH DIAGNOSTICS
                    281: .I Sort
                    282: comments and exits with non-zero status for various trouble
                    283: conditions and for disorder discovered under option
                    284: .BR -c .
                    285: Overflow in a
                    286: .B -a
                    287: field warns and leaves
                    288: the record uncombined.
                    289: .SH BUGS
                    290: When 
                    291: .BR -o
                    292: overwrites an input file,
                    293: premature termination by interrupt,
                    294: crash or file-system overflow can destroy data.
                    295: .br
                    296: Overflow in any but the first of multiple
                    297: .B -a
                    298: fields is fatal.
                    299: .br
                    300: Perhaps fields delimited by
                    301: .BR -t
                    302: should grow to avoid 
                    303: .B -a
                    304: overflows.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.