Por favor, explique como usar o comando sort no unix

2

Eu sou novo no UNIX. Por favor, explique o comando sort . Tenho dúvidas relacionadas ao separador de campo de classificação. Por exemplo: sort -k2, 2 filename , por favor, esclareça. Por favor, forneça um pequeno exemplo.

    
por user607585 18.06.2016 / 06:37

1 resposta

2

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

    
por 18.06.2016 / 07:18