|SORT(1)||General Commands Manual||SORT(1)|
sortutility sorts text and binary files by lines. A line is a record separated from the subsequent record by a newline (default) or NUL ´\0´ character (
-zoption). A record can contain any printable or unprintable characters. Comparisons are based on one or more sort keys extracted from each line of input, and are performed lexicographically, according to the current locale's collating rules and the specified command-line options that can tune the actual sorting behavior. By default, if keys are not given,
sortuses entire lines for comparison. If no file is specified, or if file is ‘-’, the standard input is used. The options are as follows:
-C, but additionally write a message to stderr if the input file is not sorted.
sortmay use up to about 90% of available memory. If the input is too big to fit into the memory buffer, temporary files are used.
TMPDIRor /tmp if
TMPDIRis not defined.
sortalso checks that there are no lines with duplicate keys.
-koption, they apply globally to all sort keys. When attached to a specific key (see
-k), the ordering options override all global ordering options for that key. Note that the ordering options intended to apply globally should not appear after
-kor results may be unexpected.
-n, this option handles general floating points. It has a more permissive format than that allowed by
-nbut it has a significant performance drawback.
-random-source. If multiple sort fields are specified, the same random hash function is used for all of them.
$ ls sort* | sort -V sort-1.022.tgz sort-1.23.tgz sort-1.23.1.tgz sort-1.024.tgz sort-1.024.003. sort-1.024.003.tgz sort-1.024.07.tgz sort-1.024.009.tgz
-bis specified before the first
-koption, it applies globally to all key specifications. Otherwise,
-bcan be attached independently to each field argument of the key specifications. Note that
-bshould not appear after
-k, and that it has no effect unless key fields are specified.
-koption may be specified multiple times, in which case subsequent keys are compared after earlier keys compare equal. The
-koption replaces the obsolete options
-pos2, but the old notation is also supported.
-tis not specified, the default field separator is a sequence of blank-space characters, and consecutive blank spaces do not delimit an empty field; further, the initial blank space is considered part of a field when determining key offsets. To use NUL as field separator, use
sortat once. This option affects behavior when having many input files or using temporary files. The minimum value is 2. The default value is 16.
-doption, it must decompress standard input to standard output. If program fails,
sortwill exit with an error. The compress(1) and gzip(1) utilities meet these requirements.
-bhas been specified; the first blank space of a sequence of blank spaces acts as the field separator and is included in the field (unless
-tis specified). For example, by default all blank spaces at the beginning of a line are considered to be part of the first field. Fields are specified by the
r, which correspond to the options discussed above. When
bis specified it applies only to field1 or field2 where it is specified while the rest of the modifiers apply to the whole key field regardless if they are specified only with field1 or field2 or both. A field1 position specified by m.n is interpreted as the nth character from the beginning of the mth field. A missing .n in field1 means ‘
.1’, indicating the first character of the mth field; if the
-boption is in effect, n is counted from the first non-blank character in the mth field; m.1b refers to the first non-blank character in the mth field. 1.n refers to the nth character from the beginning of the line; if n is greater than the length of the line, the field is taken to be empty. nth positions are always counted from the field beginning, even if the field is shorter than the number of specified positions. Thus, the key can really start from a position in a subsequent field. A field2 position specified by m.n is interpreted as the nth character (including separators) from the beginning of the mth field. A missing .n indicates the last character of the mth field; m = 0 designates the end of a line. Thus the option
-kv.x,w.y is synonymous with the obsolete option
-w-1.y; when y is omitted,
-kv.x,w is synonymous with
-w.0. The obsolete
-pos2 option is still supported, except for
-w.0b, which has no
-twill not override the locale numeric symbols, that is, thousand separators and decimal separators. By default, if we specify
-twith the same symbol as the thousand separator or decimal point, the symbol will be treated as the field separator. Older behavior was less definite: the symbol was treated as both field separator and numeric separator, simultaneously. This environment variable enables the old behavior.
TMPDIRmay be overridden by the
sortutility exits with one of the following values:
-c, the input file already met the sorting criteria.
sortutility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification. The flags [
sort, others are specific to this implementation. Some implementations of
-boption even when no key fields are specified. This implementation follows historic practice and IEEE Std 1003.1-2008 (“POSIX.1”) in only honoring
-bwhen it precedes a key field. The historic practice of allowing the
-ooption to appear after the file is supported for compatibility with older versions of
sort. The historic key notations
-pos2 are supported for compatibility with older versions of
sortbut their use is highly discouraged.
sortcommand appeared in Version 3 AT&T UNIX. Gabor Kovesdan <gabor@FreeBSD.org>
sorthas no limits on input line length (other than imposed by available memory) or any restrictions on bytes allowed within lines. The performance depends highly on locale settings, efficient choice of sort keys and key complexity. The fastest sort is with the C locale, on whole lines, with option
-s. In general, the C locale is the fastest, followed by single-byte locales with multi-byte locales being the slowest. The correct collation order respected in all cases. For the key specification, the simpler to process the lines the faster the search will be. When sorting by arithmetic value, using
-nresults in much better performance than
-gso its use is encouraged whenever possible.
|June 10, 2017||OpenBSD-current|