1 cfa37a7b 2004-04-10 devnull .TH SORT 1
3 cfa37a7b 2004-04-10 devnull sort \- sort and/or merge files
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
7 cfa37a7b 2004-04-10 devnull .BI -cmuMbdf\&inrwt x
10 cfa37a7b 2004-04-10 devnull .BI + pos1
12 cfa37a7b 2004-04-10 devnull .BI - pos2
24 cfa37a7b 2004-04-10 devnull .I output
32 cfa37a7b 2004-04-10 devnull .I option
39 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
40 cfa37a7b 2004-04-10 devnull .I Sort\^
42 cfa37a7b 2004-04-10 devnull lines of all the
44 cfa37a7b 2004-04-10 devnull together and writes the result on
45 cfa37a7b 2004-04-10 devnull the standard output.
46 cfa37a7b 2004-04-10 devnull If no input files are named, the standard input is sorted.
48 cfa37a7b 2004-04-10 devnull The default sort key is an entire line.
49 cfa37a7b 2004-04-10 devnull Default ordering is
50 cfa37a7b 2004-04-10 devnull lexicographic by runes.
51 cfa37a7b 2004-04-10 devnull The ordering is affected globally by the following options,
52 cfa37a7b 2004-04-10 devnull one or more of which may appear.
55 cfa37a7b 2004-04-10 devnull Compare as months.
56 cfa37a7b 2004-04-10 devnull The first three
57 cfa37a7b 2004-04-10 devnull non-white space characters
58 cfa37a7b 2004-04-10 devnull of the field
59 cfa37a7b 2004-04-10 devnull are folded
60 cfa37a7b 2004-04-10 devnull to upper case
61 cfa37a7b 2004-04-10 devnull and compared
65 cfa37a7b 2004-04-10 devnull .LR FEB ,
67 cfa37a7b 2004-04-10 devnull Invalid fields
68 cfa37a7b 2004-04-10 devnull compare low to
69 cfa37a7b 2004-04-10 devnull .LR JAN .
72 cfa37a7b 2004-04-10 devnull Ignore leading white space (spaces and tabs) in field comparisons.
75 cfa37a7b 2004-04-10 devnull `Phone directory' order:
76 cfa37a7b 2004-04-10 devnull only letters,
77 cfa37a7b 2004-04-10 devnull accented letters,
78 cfa37a7b 2004-04-10 devnull digits and white space
79 cfa37a7b 2004-04-10 devnull are significant in comparisons.
82 cfa37a7b 2004-04-10 devnull Fold lower case
83 cfa37a7b 2004-04-10 devnull letters onto upper case.
84 cfa37a7b 2004-04-10 devnull Accented characters are folded to their
85 cfa37a7b 2004-04-10 devnull non-accented upper case form.
88 cfa37a7b 2004-04-10 devnull Ignore characters outside the
89 cfa37a7b 2004-04-10 devnull .SM ASCII
90 cfa37a7b 2004-04-10 devnull range 040-0176
91 cfa37a7b 2004-04-10 devnull in non-numeric comparisons.
96 cfa37a7b 2004-04-10 devnull but ignore only tabs and spaces.
99 cfa37a7b 2004-04-10 devnull An initial numeric string,
100 cfa37a7b 2004-04-10 devnull consisting of optional white space,
101 cfa37a7b 2004-04-10 devnull optional plus or minus sign,
102 cfa37a7b 2004-04-10 devnull and zero or more digits with optional decimal point,
103 cfa37a7b 2004-04-10 devnull is sorted by arithmetic value.
106 cfa37a7b 2004-04-10 devnull Numbers, like
108 cfa37a7b 2004-04-10 devnull but with optional
109 cfa37a7b 2004-04-10 devnull .BR e -style
110 cfa37a7b 2004-04-10 devnull exponents, are sorted by value.
113 cfa37a7b 2004-04-10 devnull Reverse the sense of comparisons.
115 cfa37a7b 2004-04-10 devnull .BI -t x\^
116 cfa37a7b 2004-04-10 devnull `Tab character' separating fields is
119 cfa37a7b 2004-04-10 devnull The notation
120 cfa37a7b 2004-04-10 devnull .BI + "pos1\| " - pos2\^
121 cfa37a7b 2004-04-10 devnull restricts a sort key to a field beginning at
122 cfa37a7b 2004-04-10 devnull .I pos1\^
123 cfa37a7b 2004-04-10 devnull and ending just before
124 cfa37a7b 2004-04-10 devnull .IR pos2 .
125 cfa37a7b 2004-04-10 devnull .I Pos1\^
127 cfa37a7b 2004-04-10 devnull .I pos2\^
128 cfa37a7b 2004-04-10 devnull each have the form
129 cfa37a7b 2004-04-10 devnull .IB m . n\f1,
130 cfa37a7b 2004-04-10 devnull optionally followed by one or more of the flags
131 cfa37a7b 2004-04-10 devnull .BR Mbdfginr ,
134 cfa37a7b 2004-04-10 devnull tells a number of fields to skip from the beginning of the line and
136 cfa37a7b 2004-04-10 devnull tells a number of characters to skip further.
137 cfa37a7b 2004-04-10 devnull If any flags are present they override all the global
138 cfa37a7b 2004-04-10 devnull ordering options for this key.
139 cfa37a7b 2004-04-10 devnull A missing
140 cfa37a7b 2004-04-10 devnull .BI \&. n\^
142 cfa37a7b 2004-04-10 devnull .BR \&.0 ;
143 cfa37a7b 2004-04-10 devnull a missing
144 cfa37a7b 2004-04-10 devnull .BI - pos2\^
145 cfa37a7b 2004-04-10 devnull means the end of the line.
146 cfa37a7b 2004-04-10 devnull Under the
147 cfa37a7b 2004-04-10 devnull .BI -t x\^
148 cfa37a7b 2004-04-10 devnull option, fields are strings separated by
150 cfa37a7b 2004-04-10 devnull otherwise fields are
151 cfa37a7b 2004-04-10 devnull non-empty strings separated by white space.
152 cfa37a7b 2004-04-10 devnull White space before a field
153 cfa37a7b 2004-04-10 devnull is part of the field, except under option
154 cfa37a7b 2004-04-10 devnull .BR -b .
157 cfa37a7b 2004-04-10 devnull flag may be attached independently to
158 cfa37a7b 2004-04-10 devnull .IR pos1
160 cfa37a7b 2004-04-10 devnull .IR pos2.
162 cfa37a7b 2004-04-10 devnull The notation
164 cfa37a7b 2004-04-10 devnull .IR pos1 [, pos2 ]
165 cfa37a7b 2004-04-10 devnull is how POSIX
167 cfa37a7b 2004-04-10 devnull defines fields:
171 cfa37a7b 2004-04-10 devnull have the same format but different meanings.
172 cfa37a7b 2004-04-10 devnull The value of
174 cfa37a7b 2004-04-10 devnull is origin 1 instead of origin 0
175 cfa37a7b 2004-04-10 devnull and a missing
176 cfa37a7b 2004-04-10 devnull .BI \&. n\^
179 cfa37a7b 2004-04-10 devnull is the end of the field.
181 cfa37a7b 2004-04-10 devnull When there are multiple sort keys, later keys
182 cfa37a7b 2004-04-10 devnull are compared only after all earlier keys
183 cfa37a7b 2004-04-10 devnull compare equal.
184 cfa37a7b 2004-04-10 devnull Lines that otherwise compare equal are ordered
185 cfa37a7b 2004-04-10 devnull with all bytes significant.
187 cfa37a7b 2004-04-10 devnull These option arguments are also understood:
188 cfa37a7b 2004-04-10 devnull .TP \w'\fL-z\fIrecsize\fLXX'u
190 cfa37a7b 2004-04-10 devnull Check that the single input file is sorted according to the ordering rules;
191 cfa37a7b 2004-04-10 devnull give no output unless the file is out of sort.
194 cfa37a7b 2004-04-10 devnull Merge; assume the input files are already sorted.
197 cfa37a7b 2004-04-10 devnull Suppress all but one in each
198 cfa37a7b 2004-04-10 devnull set of equal lines.
199 cfa37a7b 2004-04-10 devnull Ignored bytes
200 cfa37a7b 2004-04-10 devnull and bytes outside keys
201 cfa37a7b 2004-04-10 devnull do not participate in
202 cfa37a7b 2004-04-10 devnull this comparison.
205 cfa37a7b 2004-04-10 devnull The next argument is the name of an output file
206 cfa37a7b 2004-04-10 devnull to use instead of the standard output.
207 cfa37a7b 2004-04-10 devnull This file may be the same as one of the inputs.
209 cfa37a7b 2004-04-10 devnull .BI -T dir
210 cfa37a7b 2004-04-10 devnull Put temporary files in
212 cfa37a7b 2004-04-10 devnull rather than in
213 cfa37a7b 2004-04-10 devnull .BR /tmp .
215 cfa37a7b 2004-04-10 devnull .SH EXAMPLES
217 cfa37a7b 2004-04-10 devnull .L sort -u +0f +0 list
218 cfa37a7b 2004-04-10 devnull Print in alphabetical order all the unique spellings
219 cfa37a7b 2004-04-10 devnull in a list of words
220 cfa37a7b 2004-04-10 devnull where capitalized words differ from uncapitalized.
222 cfa37a7b 2004-04-10 devnull .L sort -t: +1 /adm/users
223 cfa37a7b 2004-04-10 devnull Print the users file
224 cfa37a7b 2004-04-10 devnull sorted by user name
225 cfa37a7b 2004-04-10 devnull (the second colon-separated field).
227 cfa37a7b 2004-04-10 devnull .L sort -umM dates
228 cfa37a7b 2004-04-10 devnull Print the first instance of each month in an already sorted file.
231 cfa37a7b 2004-04-10 devnull with just one input file make the choice of a
232 cfa37a7b 2004-04-10 devnull unique representative from a set of equal lines predictable.
235 cfa37a7b 2004-04-10 devnull grep -n '^' input | sort -t: +1f +0n | sed 's/[0-9]*://'
236 cfa37a7b 2004-04-10 devnull A stable sort: input lines that compare equal will
237 cfa37a7b 2004-04-10 devnull come out in their original order.
238 cfa37a7b 2004-04-10 devnull .SH FILES
239 cfa37a7b 2004-04-10 devnull .BI /tmp/sort. <pid>.<ordinal>
240 cfa37a7b 2004-04-10 devnull .SH SOURCE
241 b5fdffee 2004-04-19 devnull .B /usr/local/plan9/src/cmd/sort.c
242 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
243 cfa37a7b 2004-04-10 devnull .IR uniq (1),
244 cfa37a7b 2004-04-10 devnull .IR look (1)
245 cfa37a7b 2004-04-10 devnull .SH DIAGNOSTICS
247 cfa37a7b 2004-04-10 devnull comments and exits with non-null status for various trouble
248 cfa37a7b 2004-04-10 devnull conditions and for disorder discovered under option
249 cfa37a7b 2004-04-10 devnull .BR -c .
250 cfa37a7b 2004-04-10 devnull .SH BUGS
251 cfa37a7b 2004-04-10 devnull An external null character can be confused
252 cfa37a7b 2004-04-10 devnull with an internally generated end-of-field character.
253 cfa37a7b 2004-04-10 devnull The result can make a sub-field not sort
254 cfa37a7b 2004-04-10 devnull less than a longer field.
256 cfa37a7b 2004-04-10 devnull Some of the options, e.g.
259 cfa37a7b 2004-04-10 devnull .BR -M ,
260 cfa37a7b 2004-04-10 devnull are hopelessly provincial.