diff options
Diffstat (limited to 'gnu/usr.bin/sort/sort.1')
-rw-r--r-- | gnu/usr.bin/sort/sort.1 | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/gnu/usr.bin/sort/sort.1 b/gnu/usr.bin/sort/sort.1 new file mode 100644 index 0000000..4aea834 --- /dev/null +++ b/gnu/usr.bin/sort/sort.1 @@ -0,0 +1,231 @@ +.\" $FreeBSD$ +.TH SORT 1 "GNU Text Utilities" "FSF" \" -*- nroff -*- +.SH NAME +sort \- sort lines of text files +.SH SYNOPSIS +.B sort +[\-cmus] [\-t separator] [\-o output-file] [\-T tempdir] [\-bdfiMnr] +[+POS1 [\-POS2]] [\-k POS1[,POS2]] [file...] +.br +.B sort +{\-\-help,\-\-version} +.SH DESCRIPTION +This manual page +documents the GNU version of +.BR sort . +.B sort +sorts, merges, or compares all the lines from the given files, or the standard +input if no files are given. A file name of `-' means standard input. +By default, +.B sort +writes the results to the standard output. +.PP +.B sort +has three modes of operation: sort (the default), merge, and check for +sortedness. The following options change the operation mode: +.TP +.I \-c +Check whether the given files are already sorted: if they are not all +sorted, print an error message and exit with a status of 1. +.TP +.I \-m +Merge the given files by sorting them as a group. Each input file +should already be individually sorted. It always works to sort +instead of merge; merging is provided because it is faster, in the +case where it works. +.PP +A pair of lines is compared as follows: +if any key fields have been specified, +.B sort +compares each pair of fields, in the order specified on the command +line, according to the associated ordering options, until a difference +is found or no fields are left. +.PP +If any of the global options +.I Mbdfinr +are given but no key fields are +specified, +.B sort +compares the entire lines according to the global options. +.PP +Finally, as a last resort when all keys compare equal +(or if no ordering options were specified at all), +.B sort +compares the lines byte by byte in machine collating sequence. +The last resort comparison honors the +.I -r +global option. +The +.I \-s +(stable) option disables this last-resort comparison so that +lines in which all fields compare equal are left in their original +relative order. If no fields or global options are specified, +.I \-s +has no effect. +.PP +GNU +.B sort +has no limits on input line length or restrictions on bytes allowed +within lines. In addition, if the final byte of an input file is not +a newline, GNU +.B sort +silently supplies one. +.PP +If the environment variable +.B TMPDIR +is set, +.B sort +uses it as the directory in which to put temporary files instead of +the default, /tmp. The +.I "\-T tempdir" +option is another way to select the directory for temporary files; it +overrides the environment variable. +.PP +The following options affect the ordering of output lines. They may +be specified globally or as part of a specific key field. If no key +fields are specified, global options apply to comparison of entire +lines; otherwise the global options are inherited by key fields that +do not specify any special options of their own. +.TP +.I \-b +Ignore leading blanks when finding sort keys in each line. +.TP +.I \-d +Sort in `phone directory' order: ignore all characters except letters, +digits and blanks when sorting. +.TP +.I \-f +Fold lower case characters into the equivalent upper case characters +when sorting so that, for example, `b' is sorted the same way `B' is. +.TP +.I \-i +Ignore characters outside the ASCII range 040-0176 octal (inclusive) +when sorting. +.TP +.I \-M +An initial string, consisting of any amount of white space, followed +by three letters abbreviating a month name, is folded to UPPER case +and compared in the order `JAN' < `FEB' < ... < `DEC.' Invalid names +compare low to valid names. +.TP +.I \-n +Compare according to arithmetic value an initial numeric string +consisting of optional white space, an optional \- sign, and zero or +more digits, optionally followed by a decimal point and zero or more +digits. +.TP +.I \-r +Reverse the result of comparison, so that lines with greater key +values appear earlier in the output instead of later. +.PP +Other options are: +.TP +.I "\-o output-file" +Write output to +.I output-file +instead of to the standard output. If +.I output-file +is one of the input files, +.B sort +copies it to a temporary file before sorting and writing the output to +.IR output-file . +.TP +.I "\-t separator" +Use character +.I separator +as the field separator when finding the sort keys in each line. By +default, fields are separated by the empty string between a +non-whitespace character and a whitespace character. That is to say, +given the input line ` foo bar', +.B sort +breaks it into fields ` foo' and ` bar'. The field separator is not +considered to be part of either the field preceding or the field +following it. +.TP +.I \-u +For the default case or the +.I \-m +option, only output the first of a sequence of lines that compare +equal. For the +.I \-c +option, check that no pair of consecutive lines compares equal. +.TP +.I "+POS1 [\-POS2]" +Specify a field within each line to use as a sorting key. The field +consists of the portion of the line starting at POS1 and up to (but +not including) POS2 (or to the end of the line if POS2 is not given). +The fields and character positions are numbered starting with 0. +.TP +.I "\-k POS1[,POS2]" +An alternate syntax for specifying sorting keys. +The fields and character positions are numbered starting with 1. +.PP +A position has the form \fIf\fP.\fIc\fP, where \fIf\fP is the number +of the field to use and \fIc\fP is the number of the first character +from the beginning of the field (for \fI+pos\fP) or from the end of +the previous field (for \fI\-pos\fP). The .\fIc\fP part of a position +may be omitted in which case it is taken to be the first character in +the field. If the +.I \-b +option has been given, the .\fIc\fP part of a field specification is +counted from the first nonblank character of the field (for +\fI+pos\fP) or from the first nonblank character following the +previous field (for \fI\-pos\fP). +.PP +A \fI+pos\fP or \fI-pos\fP argument may also have any of the option +letters +.I Mbdfinr +appended to it, in which case the global ordering options are not used +for that particular field. The +.I \-b +option may be independently attached to either or both of the +\fI+pos\fP and \fI\-pos\fP parts of a field specification, and if it +is inherited from the global options it will be attached to both. +If a +.I \-n +or +.I \-M +option is used, thus implying a +.I \-b +option, the +.I \-b +option is taken to apply to both the \fI+pos\fP and the \fI\-pos\fP +parts of a key specification. Keys may span multiple fields. +.PP +In addition, when GNU +.B sort +is invoked with exactly one argument, the following options are recognized: +.TP +.I "\-\-help" +Print a usage message on standard output and exit successfully. +.TP +.I "\-\-version" +Print version information on standard output then exit successfully. +.SH COMPATIBILITY +Historical (BSD and System V) implementations of +.B sort +have differed in their interpretation of some options, +particularly +.IR \-b , +.IR \-f , +and +.IR \-n . +GNU sort follows the POSIX behavior, which is +usually (but not always!) like the System V behavior. +According to POSIX +.I \-n +no longer implies +.IR \-b . +For consistency, +.I \-M +has been changed in the same way. +This may affect the meaning of character positions in field +specifications in obscure cases. +If this bites you the fix is to add an explicit +.IR \-b . +.SH BUGS +The different meaning of field numbers depending +on whether +.I -k +is used is confusing. +It's all POSIX's fault! |