| <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> |