Annotation of lucent/sys/man/1/sort, revision 1.1.1.1

1.1       root        1: .TH SORT 1 
                      2: .SH NAME
                      3: sort \- sort and/or merge files
                      4: .SH SYNOPSIS
                      5: .B sort
                      6: [
                      7: .BI -cmuMbdf\&inrwt x
                      8: ]
                      9: [
                     10: .BI + pos1
                     11: [
                     12: .BI - pos2
                     13: ] ...
                     14: ] ...
                     15: [
                     16: .B -k
                     17: .I pos1
                     18: [
                     19: .I ,pos2
                     20: ]
                     21: ] ...
                     22: [
                     23: .B -o
                     24: .I output
                     25: ]
                     26: [
                     27: .B -T
                     28: .I dir
                     29: \&...
                     30: ]
                     31: [
                     32: .I option
                     33: \&...
                     34: ]
                     35: [
                     36: .I file
                     37: \&...
                     38: ]
                     39: .SH DESCRIPTION
                     40: .I Sort\^
                     41: sorts
                     42: lines of all the
                     43: .I files
                     44: together and writes the result on
                     45: the standard output.
                     46: If no input files are named, the standard input is sorted.
                     47: .PP
                     48: The default sort key is an entire line.
                     49: Default ordering is
                     50: lexicographic by runes.
                     51: The ordering is affected globally by the following options,
                     52: one or more of which may appear.
                     53: .TP
                     54: .B -M
                     55: Compare as months.
                     56: The first three
                     57: non-white space characters
                     58: of the field
                     59: are folded
                     60: to upper case
                     61: and compared
                     62: so that
                     63: .L JAN
                     64: precedes
                     65: .LR FEB ,
                     66: etc.
                     67: Invalid fields
                     68: compare low to
                     69: .LR JAN .
                     70: .TP
                     71: .B -b
                     72: Ignore leading white space (spaces and tabs) in field comparisons.
                     73: .TP
                     74: .B -d
                     75: `Phone directory' order:
                     76: only letters,
                     77: accented letters,
                     78: digits and white space
                     79: are significant in comparisons.
                     80: .TP
                     81: .B -f
                     82: Fold lower case
                     83: letters onto upper case.
                     84: Accented characters are folded to their
                     85: non-accented upper case form.
                     86: .TP
                     87: .B -i
                     88: Ignore characters outside the
                     89: .SM ASCII
                     90: range 040-0176
                     91: in non-numeric comparisons.
                     92: .TP
                     93: .B -w
                     94: Like
                     95: .BR -i ,
                     96: but ignore only tabs and spaces.
                     97: .TP
                     98: .B -n
                     99: An initial numeric string,
                    100: consisting of optional white space,
                    101: optional plus or minus sign,
                    102: and zero or more digits with optional decimal point,
                    103: is sorted by arithmetic value.
                    104: .TP
                    105: .B -g
                    106: Numbers, like
                    107: .B -n 
                    108: but with optional 
                    109: .BR e -style
                    110: exponents, are sorted by value.
                    111: .TP
                    112: .B -r
                    113: Reverse the sense of comparisons.
                    114: .TP
                    115: .BI -t x\^
                    116: `Tab character' separating fields is
                    117: .IR x .
                    118: .PP
                    119: The notation
                    120: .BI + "pos1\| " - pos2\^
                    121: restricts a sort key to a field beginning at
                    122: .I pos1\^
                    123: and ending just before
                    124: .IR pos2 .
                    125: .I Pos1\^
                    126: and
                    127: .I pos2\^
                    128: each have the form
                    129: .IB m . n\f1,
                    130: optionally followed by one or more of the flags
                    131: .BR Mbdfginr ,
                    132: where
                    133: .I m\^
                    134: tells a number of fields to skip from the beginning of the line and
                    135: .I n\^
                    136: tells a number of characters to skip further.
                    137: If any flags are present they override all the global
                    138: ordering options for this key.
                    139: A missing
                    140: .BI \&. n\^
                    141: means
                    142: .BR \&.0 ;
                    143: a missing
                    144: .BI - pos2\^
                    145: means the end of the line.
                    146: Under the
                    147: .BI -t x\^
                    148: option, fields are strings separated by
                    149: .IR x ;
                    150: otherwise fields are
                    151: non-empty strings separated by white space.
                    152: White space before a field
                    153: is part of the field, except under option
                    154: .BR -b .
                    155: A
                    156: .B b
                    157: flag may be attached independently to
                    158: .IR pos1
                    159: and
                    160: .IR pos2.
                    161: .PP
                    162: The notation
                    163: .B -k
                    164: .IR pos1 [, pos2 ]
                    165: is how POSIX
                    166: .I sort
                    167: defines fields:
                    168: .I pos1
                    169: and
                    170: .I pos2
                    171: have the same format but different meanings.
                    172: The value of
                    173: .I  m\^
                    174: is origin 1 instead of origin 0
                    175: and a missing
                    176: .BI \&. n\^
                    177: in
                    178: .I pos2
                    179: is the end of the field.
                    180: .PP
                    181: When there are multiple sort keys, later keys
                    182: are compared only after all earlier keys
                    183: compare equal.
                    184: Lines that otherwise compare equal are ordered
                    185: with all bytes significant.
                    186: .PP
                    187: These option arguments are also understood:
                    188: .TP \w'\fL-z\fIrecsize\fLXX'u
                    189: .B -c
                    190: Check that the single input file is sorted according to the ordering rules;
                    191: give no output unless the file is out of sort.
                    192: .TP
                    193: .B -m
                    194: Merge; assume the input files are already sorted.
                    195: .TP
                    196: .B -u
                    197: Suppress all but one in each
                    198: set of equal lines.
                    199: Ignored bytes
                    200: and bytes outside keys
                    201: do not participate in
                    202: this comparison.
                    203: .TP
                    204: .B -o
                    205: The next argument is the name of an output file
                    206: to use instead of the standard output.
                    207: This file may be the same as one of the inputs.
                    208: .TP
                    209: .BI -T dir
                    210: Put temporary files in
                    211: .I dir
                    212: rather than in
                    213: .BR /tmp .
                    214: .ne 4
                    215: .SH EXAMPLES
                    216: .TP
                    217: .L sort -u +0f +0 list
                    218: Print in alphabetical order all the unique spellings
                    219: in a list of words
                    220: where capitalized words differ from uncapitalized.
                    221: .TP
                    222: .L sort -t: +1 /adm/users
                    223: Print the users file
                    224: sorted by user name
                    225: (the second colon-separated field).
                    226: .TP
                    227: .L sort -umM dates
                    228: Print the first instance of each month in an already sorted file.
                    229: Options
                    230: .B -um
                    231: with just one input file make the choice of a
                    232: unique representative from a set of equal lines predictable.
                    233: .TP
                    234: .L
                    235: grep -n '^' input | sort -t: +1f +0n | sed 's/[0-9]*://'
                    236: A stable sort: input lines that compare equal will 
                    237: come out in their original order.
                    238: .SH FILES
                    239: .BI /tmp/sort. <pid>.<ordinal>
                    240: .SH SOURCE
                    241: .B /sys/src/cmd/sort.c
                    242: .SH SEE ALSO
                    243: .IR uniq (1),
                    244: .IR look (1)
                    245: .SH DIAGNOSTICS
                    246: .I Sort
                    247: comments and exits with non-null status for various trouble
                    248: conditions and for disorder discovered under option
                    249: .BR -c .
                    250: .SH BUGS
                    251: An external null character can be confused
                    252: with an internally generated end-of-field character.
                    253: The result can make a sub-field not sort
                    254: less than a longer field.
                    255: .PP
                    256: Some of the options, e.g.
                    257: .B -i
                    258: and
                    259: .BR -M ,
                    260: are hopelessly provincial.

unix.superglobalmegacorp.com

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