Há um erro de sintaxe em sort -k2, 2 filename
. Não deve haver um delimitador de espaço na opção -k2,2
. Além disso, eliminaria uma possível fonte de confusão e / ou erro (dependendo do conteúdo do arquivo que está sendo classificado) para adicionar uma ordem de dicionário ou uma opção de classificação numérica ao comando para tornar explícito como as coisas deveriam ser ser classificado.
Exemplos
cat unsorted-file.txt # original unsorted file
9 8 7
6 55 44
3 2 1
sort -k1 -n unsorted-file.txt # example 1
3 2 1
6 55 44
9 8 7
sort -k3 -n unsorted-file.txt # example 2
3 2 1
9 8 7
6 55 44
sort -k1,3 -n unsorted-file.txt # example 3
3 2 1
6 55 44
9 8 7
sort -k2,3 -n unsorted-file.txt # example 4
3 2 1
9 8 7
6 55 44
Explicação
Por padrão, o delimitador de campo não está em branco para a transição em branco.
KEYDEF -k
é F [.C] [OPTS] [ F [.C] [OPTS]] para a posição inicial e final, onde
F é um número de campo e C uma posição de caractere no campo. Ambos são de origem 1 e a posição de parada é padronizada para o final da linha.
-k1
- primeiro campo
-k3
- terceiro campo
-k1,3
- inicia o primeiro campo, para o terceiro campo
-k2,3
- inicia o segundo campo, para o terceiro campo
-n
- compara de acordo com o valor numérico da string