X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/f67f22d5e58bc2da81fed0d8f4164e02fe7b24fb..ad7871609881e73855d0b04da49b486cd93efca7:/usr/src/usr.bin/sort/sort.1 diff --git a/usr/src/usr.bin/sort/sort.1 b/usr/src/usr.bin/sort/sort.1 index 0f1a6f6dbd..0ff0633ce1 100644 --- a/usr/src/usr.bin/sort/sort.1 +++ b/usr/src/usr.bin/sort/sort.1 @@ -1,156 +1,310 @@ -.\" @(#)sort.1 6.2 (Berkeley) %G% +.\" Copyright (c) 1991, 1993 +.\" The Regents of the University of California. All rights reserved. .\" -.TH SORT 1 "" -.AT 3 -.SH NAME -sort \- sort or merge files -.SH SYNOPSIS -.B sort -[ -.if t \fB\-mubdf\&inrt\fIx\fR -.if n -_m_u_b_d_f_i_n_r_tx -] -[ \fB+\fIpos1 \fR [ \fB\-\fIpos2 \fR] -] ... -[ -.B \-o -name ] [ -.B \-T -directory ] [ name ] ... -.SH DESCRIPTION -.I Sort -sorts lines of all the named files together and writes the result on -the standard output. The name `\-' means the standard input. -If no input files are named, the standard input is sorted. -.LP -The default sort key is an entire line. -Default ordering is lexicographic by bytes in machine collating sequence. -The ordering is affected globally by the following options, -one or more of which may appear. -.TP 5 -.B b -Ignore leading blanks (spaces and tabs) in field comparisons. -.TP 5 -.B d -`Dictionary' order: only letters, digits and blanks -are significant in comparisons. -.TP 5 -.B f -Fold upper case letters onto lower case. -.TP 5 -.B i -Ignore characters outside the ASCII range 040-0176 in nonnumeric comparisons. -.TP 5 -.B n -An initial numeric string, consisting of optional blanks, optional minus sign, -and zero or more digits with optional decimal point, -is sorted by arithmetic value. Option -.B n -implies option -.B b. -.TP 5 -.B r +.\" This code is derived from software contributed to Berkeley by +.\" the Institute of Electrical and Electronics Engineers, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)sort.1 8.1 (Berkeley) 6/10/93 +.\" +.Dd June 10, 1993 +.Dt SORT 1 +.Os +.Sh NAME +.Nm sort +.Nd sort or merge text files +.Sh SYNOPSIS +.Nm sort +.Op Fl mubdfinrtx +.Oo +.Cm \(pl Ns Ar pos1 +.Op Fl Ns Ar pos2 +.Oc +.Ar ... +.Op Fl o Ar output +.Op Fl T Ar directory +.Op Ar file +.Ar ... +.Sh DESCRIPTION +The +.Nm sort +utility +sorts text files by lines. +Comparisons are based on one or more sort keys (or fields) extracted +from each line of input, and are performed +lexicographically. By default, if keys are not given, +.Nm sort +regards each input line as a single field. +.Pp +The following options are available: +.Bl -tag -width indent +.It Fl c +Check that the single input file is sorted lexicographically. +If the file is not sorted, +.Nm sort +sorts it and writes the sorted output to the standard output or the +filename specified by the +.Fl o +option. +.It Fl m +Merge only; the input files are assumed to be pre-sorted. +.It Fl o Ar output +The argument given is the name of an +.Ar output +file to +be used instead of the standard output. +This file +can be the same as one of the input files. +.It Fl T Ar directory +The argument +.Ar directory +is used for creating temporary files. +.It Fl u +Unique: suppress all but one in each set of lines +having equal keys. +If used with the +.Fl c +option, +check that there are no lines with duplicate keys. +.El +.Pp +The following options override the default ordering rules. +When ordering options appear independent of key field +specifications, the requested field ordering rules are +applied globally to all sort keys. +.\" When attached to a +.\" specific key +.\" (see +.\" .Fl k ) , +.\" the specified ordering options override +.\" all global ordering options for that key. +.Bl -tag -width indent +.It Fl d +Only blank space and alphanumeric characters +.\" according +.\" to the current setting of LC_CTYPE +are used +in making comparisons. +.It Fl f +Considers all lowercase characters that have uppercase +equivalents to be the same for purposes of +comparison. +.It Fl i +Ignore all non-printable characters. +.It Fl n +An initial numeric string, consisting of optional +blank space, optional minus sign, and zero or more +digits (including decimal point) +.\" with +.\" optional radix character and thousands +.\" separator +.\" (as defined in the current locale), +is sorted by arithmetic value. +The +.Fl n +option implies +the +.Fl b +option. (See below.) +Note that the +.Fl b +option +is only effective when key fields have been specified +and that +.Fl \&0 +is considered equal to zero. +.optional It Fl r Reverse the sense of comparisons. -.TP 5 -.BI t x -`Tab character' separating fields is -.IR x . -.LP -The notation -.BI + "pos1 " "\-\fIpos2" -restricts a sort key to a field beginning at -.I pos1 -and ending just before -.IR pos2 . -.I Pos1 +.El +.Pp +The treatment of field separators can be altered using the +options: +.Bl -tag -width indent +.It Fl b +Leading blank spaces are ignored when determining the starting +ending positions of a restricted sort key. +If the +.Fl b +option is specified before the first +.Cm \(pl Ns Ar pos1 +argument, it shall be applied to all +.Cm \(pl Ns Ar pos1 +arguments. +Otherwise, the +.Fl b +option can be +attached independently to each +.Cm \(pl Ns Ar pos1 +or +.Fl Ar pos2 +argument (see below). +.It Fl t Ar char +.Ar Char +is used as the field separator character; +.Ar char +is not considered to be part of a field (although it +can be included in a sort key). +Each occurrence of +.Ar char +is significant (for example, +.Dq Ar charchar +delimits an empty field). +If +.Fl t +is not specified, +blank space characters are used as default field +separators. +.It Cm \(pl Ns Ar pos1 +Designates the start position of a key field. +.It Fl Ns Ar pos1 +Designates the end position of a key field. +.El +.Pp +The following operands are available: +.Bl -tag -width indent +.Ar file +The pathname of a file to be sorted, merged, or checked. +If no file +operands are specified, or if +a file operand is +.Fl , +the standard input is used. +.Pp +A field is +defined as a minimal sequence of characters followed by a +field separator or a newline character. +By default, the first +blank space of a sequence of blank spaces acts as the field separator. +All blank spaces in a sequence of blank spaces are considered +to be part of the next field; for example, all blank spaces at +the beginning of a line are considered to be part of the +first field. +.Pp +Fields are specified +by the +.Cm \(pl Ns Ar pos1 +and +.Fl Ar pos2 +arguments. A missing +.Cm \(pl Ns Ar pos1 +argument defaults to the beginning of a line. +A missing +.Fl Ar pos2 +argument defaults to the end of a line. +.Pp +The arguments +.Cm \(pl Ns Ar pos1 and -.I pos2 -each have the form -.IB m . n\fR, -optionally followed by one or more of the flags -.B bdf\&inr, -where -.I m -tells a number of fields to skip from the beginning of the line and -.I n -tells a number of characters to skip further. -If any flags are present they override all the global -ordering options for this key. If the -.B b -option is in effect -.I n -is counted from the first nonblank in the field; -.B b -is attached independently to -.IR pos2 . -A missing \&\fB.\fIn\fR means .0; a missing -.BI \- pos2 -means the end of the line. Under the -.BI \-t x -option, fields are strings separated by -.IR x ; -otherwise fields are nonempty nonblank strings separated by blanks. -.LP -When there are multiple sort keys, later keys -are compared only after all earlier keys compare equal. -Lines that otherwise compare equal are ordered with all bytes significant. -.LP -These option arguments are also understood: -.TP 5 -.B c -Check that the input file is sorted according to the ordering rules; -give no output unless the file is out of sort. -.TP 5 -.B m -Merge only, the input files are already sorted. -.TP 5 -.B o -The next argument is the name of an output file -to use instead of the standard output. -This file may be the same as one of the inputs. -.TP 5 -.B T -The next argument is the name of a directory in which temporary files -should be made. -.TP 5 -.B u -Suppress all but one in each set of equal lines. -Ignored bytes and bytes outside keys do not participate in this comparison. -.SH EXAMPLES -.LP -Print in alphabetical order all the unique spellings in a list of words. -Capitalized words differ from uncapitalized. -.LP -.ti +8 -sort \-u +0f +0 list -.LP -Print the password file -.RI ( passwd (5)) -sorted by user id number (the 3rd colon-separated field). -.LP -.ti +8 -sort \-t: +2n /etc/passwd -.LP -Print the first instance of each month in an already sorted file -of (month day) entries. -The options -.B \-um -with just one input file make the choice of a -unique representative from a set of equal lines predictable. -.LP -.ti +8 -sort \-um +0 \-1 dates -.SH FILES -/usr/tmp/stm*, /tmp/* first and second tries for -temporary files -.SH "SEE ALSO" -uniq(1), -comm(1), -rev(1), -join(1) -.SH DIAGNOSTICS -Comments and exits with nonzero status for various trouble -conditions and for disorder discovered under option -.BR \-c . -.SH BUGS -Very long lines are silently truncated. +.Fl Ar pos2 +have the form +.Em m.n +followed by one or more of the options +.Fl b , d , f , i , +.Fl n , r . +A +.Cm \(pl Ns Ar pos1 +position specified by +.Em m.n +is interpreted to +mean the +.Em n Ns th +character in the +.Em m Ns \(pl1th +field. +A missing +.Em \&.n +means +.Ql \&.0 , +indicating the first character of the +.Em m Ns \(pl1th +field. +If the +.Fl b +option is in effect, +.Em n +is counted from the first +non-blank character in the +.Em m Ns \(pl1th +field; +.Em m Ns \&.0b +refers to the first +non-blank character in the +.Em m Ns \(pl1th +field. +.Pp +A +.Fl Ar pos2 +position specified by +.Em m.n +is interpreted to mean +the +.Em n Ns th +character (including separators) after the last +character of the +.Em m Ns th +field. +A missing +.Em \&.n +means +.Ql \&.0 , +indicating +the last character of the +.Em m Ns th +field. +If the +.Fl b +option +is in effect, +.Em n +is counted from the last leading blank character in +the +.Em m Ns \(pl1th +field; +.Em m Ns \&.1b +refers to the first non-blank character in the +.Em m Ns \(pl1th +field. +.Sh FILES +.Bl -tag -width Pa -compact +.It Pa /var/tmp/stm*, /tmp/* +Default temporary directories (in order of search). +.El +.Sh SEE ALSO +.Xr comm 1 , +.Xr uniq 1 , +.Xr join 1 +.Sh DIAGNOSTICS +.Sh BUGS +Lines which are longer than 4096 are discarded and processing continues. +.Sh HISTORY +A +.Nm +command appeared in +.At v6 .