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 c8b6342d 2005-01-13 devnull .br
23 c8b6342d 2005-01-13 devnull \h'0.5in'
24 cfa37a7b 2004-04-10 devnull [
25 cfa37a7b 2004-04-10 devnull .B -o
26 cfa37a7b 2004-04-10 devnull .I output
27 cfa37a7b 2004-04-10 devnull ]
28 cfa37a7b 2004-04-10 devnull [
29 cfa37a7b 2004-04-10 devnull .B -T
30 cfa37a7b 2004-04-10 devnull .I dir
31 cfa37a7b 2004-04-10 devnull \&...
32 cfa37a7b 2004-04-10 devnull ]
33 cfa37a7b 2004-04-10 devnull [
34 cfa37a7b 2004-04-10 devnull .I option
35 cfa37a7b 2004-04-10 devnull \&...
36 cfa37a7b 2004-04-10 devnull ]
37 cfa37a7b 2004-04-10 devnull [
38 cfa37a7b 2004-04-10 devnull .I file
39 cfa37a7b 2004-04-10 devnull \&...
40 cfa37a7b 2004-04-10 devnull ]
41 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
42 cfa37a7b 2004-04-10 devnull .I Sort\^
43 cfa37a7b 2004-04-10 devnull sorts
44 cfa37a7b 2004-04-10 devnull lines of all the
45 cfa37a7b 2004-04-10 devnull .I files
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.
49 cfa37a7b 2004-04-10 devnull .PP
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.
55 cfa37a7b 2004-04-10 devnull .TP
56 cfa37a7b 2004-04-10 devnull .B -M
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
64 cfa37a7b 2004-04-10 devnull so that
65 cfa37a7b 2004-04-10 devnull .L JAN
66 cfa37a7b 2004-04-10 devnull precedes
67 cfa37a7b 2004-04-10 devnull .LR FEB ,
68 cfa37a7b 2004-04-10 devnull etc.
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 .
72 cfa37a7b 2004-04-10 devnull .TP
73 cfa37a7b 2004-04-10 devnull .B -b
74 cfa37a7b 2004-04-10 devnull Ignore leading white space (spaces and tabs) in field comparisons.
75 cfa37a7b 2004-04-10 devnull .TP
76 cfa37a7b 2004-04-10 devnull .B -d
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.
82 cfa37a7b 2004-04-10 devnull .TP
83 cfa37a7b 2004-04-10 devnull .B -f
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.
88 cfa37a7b 2004-04-10 devnull .TP
89 cfa37a7b 2004-04-10 devnull .B -i
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.
94 cfa37a7b 2004-04-10 devnull .TP
95 cfa37a7b 2004-04-10 devnull .B -w
96 cfa37a7b 2004-04-10 devnull Like
97 cfa37a7b 2004-04-10 devnull .BR -i ,
98 cfa37a7b 2004-04-10 devnull but ignore only tabs and spaces.
99 cfa37a7b 2004-04-10 devnull .TP
100 cfa37a7b 2004-04-10 devnull .B -n
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.
106 cfa37a7b 2004-04-10 devnull .TP
107 cfa37a7b 2004-04-10 devnull .B -g
108 cfa37a7b 2004-04-10 devnull Numbers, like
109 cfa37a7b 2004-04-10 devnull .B -n
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.
113 cfa37a7b 2004-04-10 devnull .TP
114 cfa37a7b 2004-04-10 devnull .B -r
115 cfa37a7b 2004-04-10 devnull Reverse the sense of comparisons.
116 cfa37a7b 2004-04-10 devnull .TP
117 cfa37a7b 2004-04-10 devnull .BI -t x\^
118 cfa37a7b 2004-04-10 devnull `Tab character' separating fields is
119 cfa37a7b 2004-04-10 devnull .IR x .
120 cfa37a7b 2004-04-10 devnull .PP
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\^
128 cfa37a7b 2004-04-10 devnull and
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 ,
134 cfa37a7b 2004-04-10 devnull where
135 cfa37a7b 2004-04-10 devnull .I m\^
136 cfa37a7b 2004-04-10 devnull tells a number of fields to skip from the beginning of the line and
137 cfa37a7b 2004-04-10 devnull .I n\^
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\^
143 cfa37a7b 2004-04-10 devnull means
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
151 cfa37a7b 2004-04-10 devnull .IR x ;
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 .
157 cfa37a7b 2004-04-10 devnull A
158 cfa37a7b 2004-04-10 devnull .B b
159 cfa37a7b 2004-04-10 devnull flag may be attached independently to
160 cfa37a7b 2004-04-10 devnull .IR pos1
161 cfa37a7b 2004-04-10 devnull and
162 cfa37a7b 2004-04-10 devnull .IR pos2.
163 cfa37a7b 2004-04-10 devnull .PP
164 cfa37a7b 2004-04-10 devnull The notation
165 cfa37a7b 2004-04-10 devnull .B -k
166 cfa37a7b 2004-04-10 devnull .IR pos1 [, pos2 ]
167 cfa37a7b 2004-04-10 devnull is how POSIX
168 cfa37a7b 2004-04-10 devnull .I sort
169 cfa37a7b 2004-04-10 devnull defines fields:
170 cfa37a7b 2004-04-10 devnull .I pos1
171 cfa37a7b 2004-04-10 devnull and
172 cfa37a7b 2004-04-10 devnull .I pos2
173 cfa37a7b 2004-04-10 devnull have the same format but different meanings.
174 cfa37a7b 2004-04-10 devnull The value of
175 cfa37a7b 2004-04-10 devnull .I m\^
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\^
179 cfa37a7b 2004-04-10 devnull in
180 cfa37a7b 2004-04-10 devnull .I pos2
181 cfa37a7b 2004-04-10 devnull is the end of the field.
182 cfa37a7b 2004-04-10 devnull .PP
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.
188 cfa37a7b 2004-04-10 devnull .PP
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
191 cfa37a7b 2004-04-10 devnull .B -c
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.
194 cfa37a7b 2004-04-10 devnull .TP
195 cfa37a7b 2004-04-10 devnull .B -m
196 cfa37a7b 2004-04-10 devnull Merge; assume the input files are already sorted.
197 cfa37a7b 2004-04-10 devnull .TP
198 cfa37a7b 2004-04-10 devnull .B -u
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.
205 cfa37a7b 2004-04-10 devnull .TP
206 cfa37a7b 2004-04-10 devnull .B -o
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.
210 cfa37a7b 2004-04-10 devnull .TP
211 cfa37a7b 2004-04-10 devnull .BI -T dir
212 cfa37a7b 2004-04-10 devnull Put temporary files in
213 cfa37a7b 2004-04-10 devnull .I dir
214 cfa37a7b 2004-04-10 devnull rather than in
215 c8b6342d 2005-01-13 devnull .BR /var/tmp .
216 cfa37a7b 2004-04-10 devnull .ne 4
217 cfa37a7b 2004-04-10 devnull .SH EXAMPLES
218 cfa37a7b 2004-04-10 devnull .TP
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.
223 cfa37a7b 2004-04-10 devnull .TP
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).
228 cfa37a7b 2004-04-10 devnull .TP
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.
231 cfa37a7b 2004-04-10 devnull Options
232 cfa37a7b 2004-04-10 devnull .B -um
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.
235 cfa37a7b 2004-04-10 devnull .TP
236 cfa37a7b 2004-04-10 devnull .L
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 d32deab1 2020-08-16 rsc .MR uniq (1) ,
246 d32deab1 2020-08-16 rsc .MR look (1)
247 cfa37a7b 2004-04-10 devnull .SH DIAGNOSTICS
248 cfa37a7b 2004-04-10 devnull .I Sort
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.
257 cfa37a7b 2004-04-10 devnull .PP
258 cfa37a7b 2004-04-10 devnull Some of the options, e.g.
259 cfa37a7b 2004-04-10 devnull .B -i
260 cfa37a7b 2004-04-10 devnull and
261 cfa37a7b 2004-04-10 devnull .BR -M ,
262 cfa37a7b 2004-04-10 devnull are hopelessly provincial.