sort -k 1.2bn < file
Classifica n
umericamente em um k
ey começando com o caractere 2
nd do campo 1
st ignorando os b
lanks ( e terminando no final da linha, mas isso não importa para um tipo numérico que considere apenas a sequência inicial de dígitos decimais).
Observe que, se houver um empate, entre essas duas linhas:
F91HE*-K92HA 7.242 3.910 4.88e+04 --
F91HE*-F91HZ 7.237 7.122 7.85e+05 --
Em seguida, o pedido será baseado na classificação do último recurso que compara as duas linhas totalmente como strings.
Com algumas localidades, espaços em branco seriam ignorados em primeira instância para comparar strings, caso em que o F91 viria antes de K92 (como F
classifica antes de K
). Com outros como no local C, os espaços em branco não seriam ignorados e o K92 viria antes do F91 (o espaço é classificado antes de F
).
Para uma classificação de último recurso que ignora os espaços em branco iniciais, independentemente da localidade, você poderia fazer:
sort -k 1.2bn -k 1b < file
Esse 1b
um classificaria (após empates na primeira chave) lexicalmente na seção da linha que começa com o primeiro campo, ignorando espaços em branco à esquerda.