Porque você não usa a opção -t
(ou -b
com tipo GNU ), então você deve contar desde o início dos espaços principais. POSIX definido sort -k EXTENDED DESCRIPTION como:
A field comprises a maximal sequence of non-separating characters and, in
the absence of option -t, any preceding field separator
Então você deve usar:
$ sort -nk2.7 file
j SN:1
b SN:2
i SA:3
k SN:4
d SN:5
f SN:10
g SN:11
h SN:15
Mas você pode usar :
como separador de campo e, em seguida, classificar numérico por segundo campo:
$ sort -t':' -nk2 file
j SN:1
b SN:2
i SA:3
k SN:4
d SN:5
f SN:10
g SN:11
h SN:15