Sort and/or Merge Files Usage: hsort [-cmh] [-o output] [-RsuvdfinxNXWrb] [-tT char] [-k keydef] ... [+pos1 [-pos2]] ... [file ...] Sort or merge lines of text from the named files or from stdin if no file specification is given. Comparisons are based on one or more sort keys extracted from each line. By default, there is one sort key, the entire line (minus any line termination characters), and ordering is done according to the ASCII collate sequence. Options: -c Check that the input is ordered as specified. No output is produced. Only the exit code is affected. -m Merge only. The input files are assumed to be already sorted. -o output Write the output to file specified. This can be the same as one of the input files. -R Ensure that each record ends with a \r\n sequence. -s Stable sort. If records match on all the sort keys, preserve the input ordering. -u Unique: suppress all but one in each set of lines having equal keys. If used with -c, check that there are no lines with equal keys. -v Verbose. If the input is checked with -c and it's out of order, print the record number and contents. Comparison Options: The following options override default ordering rules. When these options appear independent of any key field specifi- cation, they apply globally to all sort keys. When attached to a specific key, they override any global ordering options. -d Only blanks and alphanumeric characters are considered in comparing keys. -f Case-independent comparison: upper and lower case characters will compare equal. -i Ignore any non-printable characters. -n Interpret the field as decimal integer data which may contain optional leading spaces, plus or minus sign, and commas as thousands separators. -x Like -n, but also accepts octal or hex integers. -N Like -n, but also accepts floating point data containing fractional components or exponents expressed in E-notation, e.g., 1.0E-03 to mean .001. -X Like -N, but also accepts octal or hex integers. -W Use the Win32 CompareString function to compare strings according to the collate sequence specified by the user's locale descriptor. Otherwise, by default, the standard ASCII collate sequence is used for much greater performance. -r Reverse the sense of comparisons. Field Separator Options: -b Ignore leading or trailing spaces when determining the starting and ending positions of a sort key. -t char Use <char> as the field separator character; <char> is not considered to be part of a field. Each occurrence of <char> is significant so, e.g., <char><char> delimits an empty field. -T char Like -t, but each maximal sequence of <char> characters is considered a single field separator. By default, each maximal sequence of spaces is a field separator. Sort Key Specification: -k keydef Define a sort key field. The format of <keydef> is field_start[type][,field_end[type]] where <field_start> and <field_end> define the beginning and ending points of a field as: field_number[.first_character] where both fields and characters are numbered starting from 1 and specified as positive decimal integers. If <.first_character> is omitted from a <field_start>, the sort key begins with the first character of the field; if it's omitted from a <field_end>, the key ends with the last character of the field. As a special case, a field number of 0 specifies the entire record. A character number of 0 specifies the last character of the field. The <type> modifiers can be any combination of b, d, f, i, n, N or r, which behave just like the corresponding options, except as a modifier they affect only the specified sort key. The b modifier applies only to the <field_start> or <field_end> to which it is attached. If the -b option or b type modifier is specified, characters within the field are counted from the first non-blank character. When there are multiple key fields, later keys are compared only after all earlier keys compare equally. Except when -u is specified, lines that otherwise compare equally are ordered as if no -d, -f, -i, -n, -N or -k options were present and with all bytes in the lines significant to the comparison. +pos1 [-pos2] An older form of key field specification, now considered obsolete by POSIX. The <pos1> and <pos2> entries specify the start and end of a key just the way the -k option would except that in this form, fields and characters are numbered starting at 0, not 1. A fully-specified key of the form +pos1 -pos2 with type modifiers T and U: +w.xT -y.zU is equivalent to: -k (w+1).(x+1)T,y.0U (z == 0) -k (w+1).(x+1)T,(y+1).zU (z > 0) -h Help (short list.) -- End of options. Exit status: 0 All the input was sorted successfully, or -c was specified and the input was already sorted. 1 The -c option was specified and the input was not ordered correctly or -cu was specified and two lines sorted equal. >1 An error occurred. |