Você precisa de um tipo estável . De man sort
:
-s, --stable
stabilize sort by disabling last-resort comparison
viz:
$ sort -sk 1,1 <data.txt
1 Don't
1 Sort
1 Me
2 C
2 B
2 A
Note que você provavelmente também deseja um -n
ou --numeric-sort
se sua chave for numérica (por exemplo, você pode obter resultados inesperados ao comparar 10 a 2 com a ordem de classificação léxico-padrão). Nesse caso, é só uma questão de fazer:
sort -sn <data.txt
Não há necessidade de extrair o primeiro campo, pois a interpretação numérica da linha inteira será a mesma do primeiro campo.