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
23 c8b6342d 2005-01-13 devnull \h'0.5in'
26 cfa37a7b 2004-04-10 devnull .I output
34 cfa37a7b 2004-04-10 devnull .I option
41 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
42 cfa37a7b 2004-04-10 devnull .I Sort\^
44 cfa37a7b 2004-04-10 devnull lines of all the
46 cfa37a7b 2004-04-10 devnull together and writes the result on
47 cfa37a7b 2004-04-10 devnull the standard output.
48 cfa37a7b 2004-04-10 devnull If no input files are named, the standard input is sorted.
50 cfa37a7b 2004-04-10 devnull The default sort key is an entire line.
51 cfa37a7b 2004-04-10 devnull Default ordering is
52 cfa37a7b 2004-04-10 devnull lexicographic by runes.
53 cfa37a7b 2004-04-10 devnull The ordering is affected globally by the following options,
54 cfa37a7b 2004-04-10 devnull one or more of which may appear.
57 cfa37a7b 2004-04-10 devnull Compare as months.
58 cfa37a7b 2004-04-10 devnull The first three
59 cfa37a7b 2004-04-10 devnull non-white space characters
60 cfa37a7b 2004-04-10 devnull of the field
61 cfa37a7b 2004-04-10 devnull are folded
62 cfa37a7b 2004-04-10 devnull to upper case
63 cfa37a7b 2004-04-10 devnull and compared
67 cfa37a7b 2004-04-10 devnull .LR FEB ,
69 cfa37a7b 2004-04-10 devnull Invalid fields
70 cfa37a7b 2004-04-10 devnull compare low to
71 cfa37a7b 2004-04-10 devnull .LR JAN .
74 cfa37a7b 2004-04-10 devnull Ignore leading white space (spaces and tabs) in field comparisons.
77 cfa37a7b 2004-04-10 devnull `Phone directory' order:
78 cfa37a7b 2004-04-10 devnull only letters,
79 cfa37a7b 2004-04-10 devnull accented letters,
80 cfa37a7b 2004-04-10 devnull digits and white space
81 cfa37a7b 2004-04-10 devnull are significant in comparisons.
84 cfa37a7b 2004-04-10 devnull Fold lower case
85 cfa37a7b 2004-04-10 devnull letters onto upper case.
86 cfa37a7b 2004-04-10 devnull Accented characters are folded to their
87 cfa37a7b 2004-04-10 devnull non-accented upper case form.
90 cfa37a7b 2004-04-10 devnull Ignore characters outside the
91 cfa37a7b 2004-04-10 devnull .SM ASCII
92 cfa37a7b 2004-04-10 devnull range 040-0176
93 cfa37a7b 2004-04-10 devnull in non-numeric comparisons.
98 cfa37a7b 2004-04-10 devnull but ignore only tabs and spaces.
101 cfa37a7b 2004-04-10 devnull An initial numeric string,
102 cfa37a7b 2004-04-10 devnull consisting of optional white space,
103 cfa37a7b 2004-04-10 devnull optional plus or minus sign,
104 cfa37a7b 2004-04-10 devnull and zero or more digits with optional decimal point,
105 cfa37a7b 2004-04-10 devnull is sorted by arithmetic value.
108 cfa37a7b 2004-04-10 devnull Numbers, like
110 cfa37a7b 2004-04-10 devnull but with optional
111 cfa37a7b 2004-04-10 devnull .BR e -style
112 cfa37a7b 2004-04-10 devnull exponents, are sorted by value.
115 cfa37a7b 2004-04-10 devnull Reverse the sense of comparisons.
117 cfa37a7b 2004-04-10 devnull .BI -t x\^
118 cfa37a7b 2004-04-10 devnull `Tab character' separating fields is
121 cfa37a7b 2004-04-10 devnull The notation
122 cfa37a7b 2004-04-10 devnull .BI + "pos1\| " - pos2\^
123 cfa37a7b 2004-04-10 devnull restricts a sort key to a field beginning at
124 cfa37a7b 2004-04-10 devnull .I pos1\^
125 cfa37a7b 2004-04-10 devnull and ending just before
126 cfa37a7b 2004-04-10 devnull .IR pos2 .
127 cfa37a7b 2004-04-10 devnull .I Pos1\^
129 cfa37a7b 2004-04-10 devnull .I pos2\^
130 cfa37a7b 2004-04-10 devnull each have the form
131 cfa37a7b 2004-04-10 devnull .IB m . n\f1,
132 cfa37a7b 2004-04-10 devnull optionally followed by one or more of the flags
133 cfa37a7b 2004-04-10 devnull .BR Mbdfginr ,
136 cfa37a7b 2004-04-10 devnull tells a number of fields to skip from the beginning of the line and
138 cfa37a7b 2004-04-10 devnull tells a number of characters to skip further.
139 cfa37a7b 2004-04-10 devnull If any flags are present they override all the global
140 cfa37a7b 2004-04-10 devnull ordering options for this key.
141 cfa37a7b 2004-04-10 devnull A missing
142 cfa37a7b 2004-04-10 devnull .BI \&. n\^
144 cfa37a7b 2004-04-10 devnull .BR \&.0 ;
145 cfa37a7b 2004-04-10 devnull a missing
146 cfa37a7b 2004-04-10 devnull .BI - pos2\^
147 cfa37a7b 2004-04-10 devnull means the end of the line.
148 cfa37a7b 2004-04-10 devnull Under the
149 cfa37a7b 2004-04-10 devnull .BI -t x\^
150 cfa37a7b 2004-04-10 devnull option, fields are strings separated by
152 cfa37a7b 2004-04-10 devnull otherwise fields are
153 cfa37a7b 2004-04-10 devnull non-empty strings separated by white space.
154 cfa37a7b 2004-04-10 devnull White space before a field
155 cfa37a7b 2004-04-10 devnull is part of the field, except under option
156 cfa37a7b 2004-04-10 devnull .BR -b .
159 cfa37a7b 2004-04-10 devnull flag may be attached independently to
160 cfa37a7b 2004-04-10 devnull .IR pos1
162 cfa37a7b 2004-04-10 devnull .IR pos2.
164 cfa37a7b 2004-04-10 devnull The notation
166 cfa37a7b 2004-04-10 devnull .IR pos1 [, pos2 ]
167 cfa37a7b 2004-04-10 devnull is how POSIX
169 cfa37a7b 2004-04-10 devnull defines fields:
173 cfa37a7b 2004-04-10 devnull have the same format but different meanings.
174 cfa37a7b 2004-04-10 devnull The value of
176 cfa37a7b 2004-04-10 devnull is origin 1 instead of origin 0
177 cfa37a7b 2004-04-10 devnull and a missing
178 cfa37a7b 2004-04-10 devnull .BI \&. n\^
181 cfa37a7b 2004-04-10 devnull is the end of the field.
183 cfa37a7b 2004-04-10 devnull When there are multiple sort keys, later keys
184 cfa37a7b 2004-04-10 devnull are compared only after all earlier keys
185 cfa37a7b 2004-04-10 devnull compare equal.
186 cfa37a7b 2004-04-10 devnull Lines that otherwise compare equal are ordered
187 cfa37a7b 2004-04-10 devnull with all bytes significant.
189 cfa37a7b 2004-04-10 devnull These option arguments are also understood:
190 cfa37a7b 2004-04-10 devnull .TP \w'\fL-z\fIrecsize\fLXX'u
192 cfa37a7b 2004-04-10 devnull Check that the single input file is sorted according to the ordering rules;
193 cfa37a7b 2004-04-10 devnull give no output unless the file is out of sort.
196 cfa37a7b 2004-04-10 devnull Merge; assume the input files are already sorted.
199 cfa37a7b 2004-04-10 devnull Suppress all but one in each
200 cfa37a7b 2004-04-10 devnull set of equal lines.
201 cfa37a7b 2004-04-10 devnull Ignored bytes
202 cfa37a7b 2004-04-10 devnull and bytes outside keys
203 cfa37a7b 2004-04-10 devnull do not participate in
204 cfa37a7b 2004-04-10 devnull this comparison.
207 cfa37a7b 2004-04-10 devnull The next argument is the name of an output file
208 cfa37a7b 2004-04-10 devnull to use instead of the standard output.
209 cfa37a7b 2004-04-10 devnull This file may be the same as one of the inputs.
211 cfa37a7b 2004-04-10 devnull .BI -T dir
212 cfa37a7b 2004-04-10 devnull Put temporary files in
214 cfa37a7b 2004-04-10 devnull rather than in
215 c8b6342d 2005-01-13 devnull .BR /var/tmp .
217 cfa37a7b 2004-04-10 devnull .SH EXAMPLES
219 cfa37a7b 2004-04-10 devnull .L sort -u +0f +0 list
220 cfa37a7b 2004-04-10 devnull Print in alphabetical order all the unique spellings
221 cfa37a7b 2004-04-10 devnull in a list of words
222 cfa37a7b 2004-04-10 devnull where capitalized words differ from uncapitalized.
224 cfa37a7b 2004-04-10 devnull .L sort -t: +1 /adm/users
225 cfa37a7b 2004-04-10 devnull Print the users file
226 cfa37a7b 2004-04-10 devnull sorted by user name
227 cfa37a7b 2004-04-10 devnull (the second colon-separated field).
229 cfa37a7b 2004-04-10 devnull .L sort -umM dates
230 cfa37a7b 2004-04-10 devnull Print the first instance of each month in an already sorted file.
233 cfa37a7b 2004-04-10 devnull with just one input file make the choice of a
234 cfa37a7b 2004-04-10 devnull unique representative from a set of equal lines predictable.
237 cfa37a7b 2004-04-10 devnull grep -n '^' input | sort -t: +1f +0n | sed 's/[0-9]*://'
238 cfa37a7b 2004-04-10 devnull A stable sort: input lines that compare equal will
239 cfa37a7b 2004-04-10 devnull come out in their original order.
240 cfa37a7b 2004-04-10 devnull .SH FILES
241 c8b6342d 2005-01-13 devnull .BI /var/tmp/sort. <pid>.<ordinal>
242 cfa37a7b 2004-04-10 devnull .SH SOURCE
243 c3674de4 2005-01-11 devnull .B \*9/src/cmd/sort.c
244 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
245 cfa37a7b 2004-04-10 devnull .IR uniq (1),
246 cfa37a7b 2004-04-10 devnull .IR look (1)
247 cfa37a7b 2004-04-10 devnull .SH DIAGNOSTICS
249 cfa37a7b 2004-04-10 devnull comments and exits with non-null status for various trouble
250 cfa37a7b 2004-04-10 devnull conditions and for disorder discovered under option
251 cfa37a7b 2004-04-10 devnull .BR -c .
252 cfa37a7b 2004-04-10 devnull .SH BUGS
253 cfa37a7b 2004-04-10 devnull An external null character can be confused
254 cfa37a7b 2004-04-10 devnull with an internally generated end-of-field character.
255 cfa37a7b 2004-04-10 devnull The result can make a sub-field not sort
256 cfa37a7b 2004-04-10 devnull less than a longer field.
258 cfa37a7b 2004-04-10 devnull Some of the options, e.g.
261 cfa37a7b 2004-04-10 devnull .BR -M ,
262 cfa37a7b 2004-04-10 devnull are hopelessly provincial.