The -k KeyDefinition flag uses the following form:
-k [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
The sort key includes all characters beginning with the field specified by the FStart variable and the column specified by
the CStart variable and ending with the field specified by the FEnd variable and the column specified by the CEnd variable.
If Fend is not specified, the last character of the line is assumed. If CEnd is not specified the last character in the
FEnd field is assumed. Any field or column number in the KeyDefinition variable may be omitted. The default values are:
FStart
Beginning of the line
CStart
First column in the field
FEnd
End of the line
CEnd
Last column of the field
If there is any spaces between the fields, sort considers them as separate fields.
The value of the Modifier variable can be one or more of the letters b, d, f, i, n, or r. The modifiers apply only to the
field definition they are attached to and have the same effect as the flag of the same letter. The modifier letter b
applies only to the end of the field definition to which it is attached. For example:
-k 3.2b,3r
specifies a sort key beginning in the second nonblank column of the third field and extending to the end of the third
field, with the sort on this key to be done in reverse collation order. If the FStart variable and the CStart variable fall
beyond the end of the line or after the FEnd variable and the CEnd variable, then the sort key is ignored.
A sort key can also be specified in the following manner:
[+[FSkip1] [.CSkip1] [Modifier] ] [-[FSkip2] [.CSkip2] [Modifier]]
The +FSkip1 variable specifies the number of fields skipped to reach the first field of the sort key and the +CSkip
variable specifies the number of columns skipped within that field to reach the first character in the sort key. The -FSkip
variable specifies the number of fields skipped to reach the first character after the sort key, and the -CSkip variable
specifies the number of columns to skip within that field. Any of the field and column skip counts may be omitted. The
defaults are:
FSkip1
Beginning of the line
CSkip1
Zero
FSkip2
End of the line
CSkip2
Zero
The modifiers specified by the Modifier variable are the same as in the -k flag key sort definition.
The field and column numbers specified by +FSkip1.CSkip1 variables are generally one less than the field and column number
of the sort key itself because these variables specify how many fields and columns to skip before reaching the sort key.
For example:
+2.1b -3r
specifies a sort key beginning in the second nonblank column of the third field and extending to the end of the third
field, with the sort on this key to be done in reverse collation order. The statement +2.1b specifies that two fields are
skipped and then the leading blanks and one more column are skipped. If the +FSkip1.CSkip1 variables fall beyond the end of
the line or after the -FSkip2.CSkip2 variables, then the sort key is ignored.
Note: The maximum number of fields on a line is 10.