Blame


1 cfa37a7b 2004-04-10 devnull .TH SORT 1
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 cfa37a7b 2004-04-10 devnull sort \- sort and/or merge files
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B sort
6 cfa37a7b 2004-04-10 devnull [
7 cfa37a7b 2004-04-10 devnull .BI -cmuMbdf\&inrwt x
8 cfa37a7b 2004-04-10 devnull ]
9 cfa37a7b 2004-04-10 devnull [
10 cfa37a7b 2004-04-10 devnull .BI + pos1
11 cfa37a7b 2004-04-10 devnull [
12 cfa37a7b 2004-04-10 devnull .BI - pos2
13 cfa37a7b 2004-04-10 devnull ] ...
14 cfa37a7b 2004-04-10 devnull ] ...
15 cfa37a7b 2004-04-10 devnull [
16 cfa37a7b 2004-04-10 devnull .B -k
17 cfa37a7b 2004-04-10 devnull .I pos1
18 cfa37a7b 2004-04-10 devnull [
19 cfa37a7b 2004-04-10 devnull .I ,pos2
20 cfa37a7b 2004-04-10 devnull ]
21 cfa37a7b 2004-04-10 devnull ] ...
22 cfa37a7b 2004-04-10 devnull [
23 cfa37a7b 2004-04-10 devnull .B -o
24 cfa37a7b 2004-04-10 devnull .I output
25 cfa37a7b 2004-04-10 devnull ]
26 cfa37a7b 2004-04-10 devnull [
27 cfa37a7b 2004-04-10 devnull .B -T
28 cfa37a7b 2004-04-10 devnull .I dir
29 cfa37a7b 2004-04-10 devnull \&...
30 cfa37a7b 2004-04-10 devnull ]
31 cfa37a7b 2004-04-10 devnull [
32 cfa37a7b 2004-04-10 devnull .I option
33 cfa37a7b 2004-04-10 devnull \&...
34 cfa37a7b 2004-04-10 devnull ]
35 cfa37a7b 2004-04-10 devnull [
36 cfa37a7b 2004-04-10 devnull .I file
37 cfa37a7b 2004-04-10 devnull \&...
38 cfa37a7b 2004-04-10 devnull ]
39 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
40 cfa37a7b 2004-04-10 devnull .I Sort\^
41 cfa37a7b 2004-04-10 devnull sorts
42 cfa37a7b 2004-04-10 devnull lines of all the
43 cfa37a7b 2004-04-10 devnull .I files
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.
47 cfa37a7b 2004-04-10 devnull .PP
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.
53 cfa37a7b 2004-04-10 devnull .TP
54 cfa37a7b 2004-04-10 devnull .B -M
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
62 cfa37a7b 2004-04-10 devnull so that
63 cfa37a7b 2004-04-10 devnull .L JAN
64 cfa37a7b 2004-04-10 devnull precedes
65 cfa37a7b 2004-04-10 devnull .LR FEB ,
66 cfa37a7b 2004-04-10 devnull etc.
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 .
70 cfa37a7b 2004-04-10 devnull .TP
71 cfa37a7b 2004-04-10 devnull .B -b
72 cfa37a7b 2004-04-10 devnull Ignore leading white space (spaces and tabs) in field comparisons.
73 cfa37a7b 2004-04-10 devnull .TP
74 cfa37a7b 2004-04-10 devnull .B -d
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.
80 cfa37a7b 2004-04-10 devnull .TP
81 cfa37a7b 2004-04-10 devnull .B -f
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.
86 cfa37a7b 2004-04-10 devnull .TP
87 cfa37a7b 2004-04-10 devnull .B -i
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.
92 cfa37a7b 2004-04-10 devnull .TP
93 cfa37a7b 2004-04-10 devnull .B -w
94 cfa37a7b 2004-04-10 devnull Like
95 cfa37a7b 2004-04-10 devnull .BR -i ,
96 cfa37a7b 2004-04-10 devnull but ignore only tabs and spaces.
97 cfa37a7b 2004-04-10 devnull .TP
98 cfa37a7b 2004-04-10 devnull .B -n
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.
104 cfa37a7b 2004-04-10 devnull .TP
105 cfa37a7b 2004-04-10 devnull .B -g
106 cfa37a7b 2004-04-10 devnull Numbers, like
107 cfa37a7b 2004-04-10 devnull .B -n
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.
111 cfa37a7b 2004-04-10 devnull .TP
112 cfa37a7b 2004-04-10 devnull .B -r
113 cfa37a7b 2004-04-10 devnull Reverse the sense of comparisons.
114 cfa37a7b 2004-04-10 devnull .TP
115 cfa37a7b 2004-04-10 devnull .BI -t x\^
116 cfa37a7b 2004-04-10 devnull `Tab character' separating fields is
117 cfa37a7b 2004-04-10 devnull .IR x .
118 cfa37a7b 2004-04-10 devnull .PP
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\^
126 cfa37a7b 2004-04-10 devnull and
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 ,
132 cfa37a7b 2004-04-10 devnull where
133 cfa37a7b 2004-04-10 devnull .I m\^
134 cfa37a7b 2004-04-10 devnull tells a number of fields to skip from the beginning of the line and
135 cfa37a7b 2004-04-10 devnull .I n\^
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\^
141 cfa37a7b 2004-04-10 devnull means
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
149 cfa37a7b 2004-04-10 devnull .IR x ;
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 .
155 cfa37a7b 2004-04-10 devnull A
156 cfa37a7b 2004-04-10 devnull .B b
157 cfa37a7b 2004-04-10 devnull flag may be attached independently to
158 cfa37a7b 2004-04-10 devnull .IR pos1
159 cfa37a7b 2004-04-10 devnull and
160 cfa37a7b 2004-04-10 devnull .IR pos2.
161 cfa37a7b 2004-04-10 devnull .PP
162 cfa37a7b 2004-04-10 devnull The notation
163 cfa37a7b 2004-04-10 devnull .B -k
164 cfa37a7b 2004-04-10 devnull .IR pos1 [, pos2 ]
165 cfa37a7b 2004-04-10 devnull is how POSIX
166 cfa37a7b 2004-04-10 devnull .I sort
167 cfa37a7b 2004-04-10 devnull defines fields:
168 cfa37a7b 2004-04-10 devnull .I pos1
169 cfa37a7b 2004-04-10 devnull and
170 cfa37a7b 2004-04-10 devnull .I pos2
171 cfa37a7b 2004-04-10 devnull have the same format but different meanings.
172 cfa37a7b 2004-04-10 devnull The value of
173 cfa37a7b 2004-04-10 devnull .I m\^
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\^
177 cfa37a7b 2004-04-10 devnull in
178 cfa37a7b 2004-04-10 devnull .I pos2
179 cfa37a7b 2004-04-10 devnull is the end of the field.
180 cfa37a7b 2004-04-10 devnull .PP
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.
186 cfa37a7b 2004-04-10 devnull .PP
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
189 cfa37a7b 2004-04-10 devnull .B -c
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.
192 cfa37a7b 2004-04-10 devnull .TP
193 cfa37a7b 2004-04-10 devnull .B -m
194 cfa37a7b 2004-04-10 devnull Merge; assume the input files are already sorted.
195 cfa37a7b 2004-04-10 devnull .TP
196 cfa37a7b 2004-04-10 devnull .B -u
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.
203 cfa37a7b 2004-04-10 devnull .TP
204 cfa37a7b 2004-04-10 devnull .B -o
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.
208 cfa37a7b 2004-04-10 devnull .TP
209 cfa37a7b 2004-04-10 devnull .BI -T dir
210 cfa37a7b 2004-04-10 devnull Put temporary files in
211 cfa37a7b 2004-04-10 devnull .I dir
212 cfa37a7b 2004-04-10 devnull rather than in
213 cfa37a7b 2004-04-10 devnull .BR /tmp .
214 cfa37a7b 2004-04-10 devnull .ne 4
215 cfa37a7b 2004-04-10 devnull .SH EXAMPLES
216 cfa37a7b 2004-04-10 devnull .TP
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.
221 cfa37a7b 2004-04-10 devnull .TP
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).
226 cfa37a7b 2004-04-10 devnull .TP
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.
229 cfa37a7b 2004-04-10 devnull Options
230 cfa37a7b 2004-04-10 devnull .B -um
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.
233 cfa37a7b 2004-04-10 devnull .TP
234 cfa37a7b 2004-04-10 devnull .L
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
246 cfa37a7b 2004-04-10 devnull .I Sort
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.
255 cfa37a7b 2004-04-10 devnull .PP
256 cfa37a7b 2004-04-10 devnull Some of the options, e.g.
257 cfa37a7b 2004-04-10 devnull .B -i
258 cfa37a7b 2004-04-10 devnull and
259 cfa37a7b 2004-04-10 devnull .BR -M ,
260 cfa37a7b 2004-04-10 devnull are hopelessly provincial.