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