200 lines
10 KiB
HTML
200 lines
10 KiB
HTML
<head>
|
|
<title>sort(1) - Plan 9 from User Space</title>
|
|
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
|
</head>
|
|
<body bgcolor=#ffffff>
|
|
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
|
<tr height=10><td>
|
|
<tr><td width=20><td>
|
|
<tr><td width=20><td><b>SORT(1)</b><td align=right><b>SORT(1)</b>
|
|
<tr><td width=20><td colspan=2>
|
|
<br>
|
|
<p><font size=+1><b>NAME </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
sort – sort and/or merge files<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>SYNOPSIS </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>sort</font></tt> [ <tt><font size=+1>−cmuMbdfinrwt</font></tt><i>x</i> ] [ <tt><font size=+1>+</font></tt><i>pos1</i> [ <tt><font size=+1>−</font></tt><i>pos2</i> ] ... ] ... [ <tt><font size=+1>−k</font></tt> <i>pos1</i>
|
|
[ <i>,pos2</i> ] ] ...<br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
’ [ <tt><font size=+1>−o</font></tt> <i>output</i> ] [ <tt><font size=+1>−T</font></tt> <i>dir</i> ... ] [ <i>option</i> ... ] [ <i>file</i> ... ]<br>
|
|
|
|
</table>
|
|
|
|
</table>
|
|
|
|
</table>
|
|
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<i>Sort</i> sorts lines of all the <i>files</i> together and writes the result
|
|
on the standard output. If no input files are named, the standard
|
|
input is sorted.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
The default sort key is an entire line. Default ordering is lexicographic
|
|
by runes. The ordering is affected globally by the following options,
|
|
one or more of which may appear.<br>
|
|
<tt><font size=+1>−M</font></tt> Compare as months. The first three non-white space characters
|
|
of the field are folded to upper case and compared so that <tt><font size=+1>JAN</font></tt>
|
|
precedes <tt><font size=+1>FEB</font></tt>, etc. Invalid fields compare low to <tt><font size=+1>JAN</font></tt>.<br>
|
|
<tt><font size=+1>−b</font></tt> Ignore leading white space (spaces and tabs) in field comparisons.<br>
|
|
<tt><font size=+1>−d</font></tt> ‘Phone directory’ order: only letters, accented letters, digits
|
|
and white space are significant in comparisons.<br>
|
|
<tt><font size=+1>−f</font></tt> Fold lower case letters onto upper case. Accented characters
|
|
are folded to their non-accented upper case form.<br>
|
|
<tt><font size=+1>−i</font></tt> Ignore characters outside the ASCII range 040-0176 in non-numeric
|
|
comparisons.<br>
|
|
<tt><font size=+1>−w</font></tt> Like <tt><font size=+1>−i</font></tt>, but ignore only tabs and spaces.<br>
|
|
<tt><font size=+1>−n</font></tt> An initial numeric string, consisting of optional white space,
|
|
optional plus or minus sign, and zero or more digits with optional
|
|
decimal point, is sorted by arithmetic value.<br>
|
|
<tt><font size=+1>−g</font></tt> Numbers, like <tt><font size=+1>−n</font></tt> but with optional <tt><font size=+1>e</font></tt>-style exponents, are sorted
|
|
by value.<br>
|
|
<tt><font size=+1>−r</font></tt> Reverse the sense of comparisons.<br>
|
|
<tt><font size=+1>−t</font></tt><i>x</i> ‘Tab character’ separating fields is <i>x</i>.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
The notation <tt><font size=+1>+</font></tt><i>pos1</i> <tt><font size=+1>−</font></tt><i>pos2</i> restricts a sort key to a field beginning
|
|
at <i>pos1</i> and ending just before <i>pos2</i>. <i>Pos1</i> and <i>pos2</i> each have the
|
|
form <i>m</i><tt><font size=+1>.</font></tt><i>n</i>, optionally followed by one or more of the flags <tt><font size=+1>Mbdfginr</font></tt>,
|
|
where <i>m</i> tells a number of fields to skip from the beginning of
|
|
the line and <i>n</i> tells a number of characters to skip
|
|
further. If any flags are present they override all the global
|
|
ordering options for this key. A missing <tt><font size=+1>.</font></tt><i>n</i> means <tt><font size=+1>.0</font></tt>; a missing
|
|
<tt><font size=+1>−</font></tt><i>pos2</i> means the end of the line. Under the <tt><font size=+1>−t</font></tt><i>x</i> option, fields
|
|
are strings separated by <i>x</i>; otherwise fields are non-empty strings
|
|
separated by white space. White space before a field is part of
|
|
the field, except under option <tt><font size=+1>−b</font></tt>. A <tt><font size=+1>b</font></tt> flag may be attached independently
|
|
to <i>pos1</i> and <i>pos2.</i>
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
The notation <tt><font size=+1>−k</font></tt> <i>pos1</i>[,<i>pos2</i>] is how POSIX <i>sort</i> defines fields:
|
|
<i>pos1</i> and <i>pos2</i> have the same format but different meanings. The
|
|
value of <i>m</i> is origin 1 instead of origin 0 and a missing <tt><font size=+1>.</font></tt><i>n</i> in
|
|
<i>pos2</i> is the end of the field.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
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.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
These option arguments are also understood:<br>
|
|
<tt><font size=+1>−c</font></tt> Check that the single input file is sorted according to the
|
|
ordering rules; give no output unless the file is out of sort.<br>
|
|
<tt><font size=+1>−m</font></tt> Merge; assume the input files are already sorted.<br>
|
|
<tt><font size=+1>−u</font></tt> Suppress all but one in each set of equal lines. Ignored bytes
|
|
and bytes outside keys do not participate in this comparison.<br>
|
|
<tt><font size=+1>−o</font></tt> 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.<br>
|
|
<tt><font size=+1>−T</font></tt><i>dir</i> Put temporary files in <i>dir</i> rather than in <tt><font size=+1>/var/tmp</font></tt>.<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>EXAMPLES </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>sort −u +0f +0 list<br>
|
|
</font></tt>
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
Print in alphabetical order all the unique spellings in a list
|
|
of words where capitalized words differ from uncapitalized.<br>
|
|
|
|
</table>
|
|
<tt><font size=+1>sort −t: +1 /adm/users<br>
|
|
</font></tt>
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
Print the users file sorted by user name (the second colon-separated
|
|
field).<br>
|
|
|
|
</table>
|
|
<tt><font size=+1>sort −umM dates<br>
|
|
</font></tt>
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
Print the first instance of each month in an already sorted file.
|
|
Options <tt><font size=+1>−um</font></tt> with just one input file make the choice of a unique
|
|
representative from a set of equal lines predictable.<br>
|
|
|
|
</table>
|
|
<tt><font size=+1>grep −n '^' input | sort −t: +1f +0n | sed 's/[0−9]*://'<br>
|
|
</font></tt>
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
A stable sort: input lines that compare equal will come out in
|
|
their original order.<br>
|
|
|
|
</table>
|
|
|
|
</table>
|
|
<p><font size=+1><b>FILES </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>/var/tmp/sort.</font></tt><i><pid>.<ordinal><br>
|
|
</i>
|
|
</table>
|
|
<p><font size=+1><b>SOURCE </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>/usr/local/plan9/src/cmd/sort.c<br>
|
|
</font></tt>
|
|
</table>
|
|
<p><font size=+1><b>SEE ALSO </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<a href="../man1/uniq.html"><i>uniq</i>(1)</a>, <a href="../man1/look.html"><i>look</i>(1)</a><br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<i>Sort</i> comments and exits with non-null status for various trouble
|
|
conditions and for disorder discovered under option <tt><font size=+1>−c</font></tt>.<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>BUGS </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
An external null character can be confused with an internally
|
|
generated end-of-field character. The result can make a sub-field
|
|
not sort less than a longer field.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
Some of the options, e.g. <tt><font size=+1>−i</font></tt> and <tt><font size=+1>−M</font></tt>, are hopelessly provincial.<br>
|
|
|
|
</table>
|
|
|
|
<td width=20>
|
|
<tr height=20><td>
|
|
</table>
|
|
<!-- TRAILER -->
|
|
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
|
<tr height=15><td width=10><td><td width=10>
|
|
<tr><td><td>
|
|
<center>
|
|
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
|
</center>
|
|
</table>
|
|
<!-- TRAILER -->
|
|
</body></html>
|