![Por favor, explique como usar o comando sort no unix](https://rvso.com/image/1497105/Por%20favor%2C%20explique%20como%20usar%20o%20comando%20sort%20no%20unix.png)
Eu sou novo no UNIX. Por favor, explique sort
o comando. Tenho dúvidas relacionadas ao separador de campos de classificação. Ex: sort -k2, 2 filename
, Por favor, esclareça. Forneça um pequeno exemplo.
Responder1
Há um erro de sintaxe em sort -k2, 2 filename
Não deve haver um delimitador de espaço na -k2,2
opção. Além disso, eliminaria uma possível fonte de confusão e/ou erro (dependendo do conteúdo do arquivo que está sendo classificado) adicionar uma ordem de dicionário ou uma opção de classificação numérica ao comando, a fim de tornar explícito como as coisas deveriam 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 é uma transição de branco para branco.
KEYDEF -k
é F[.C][OPTS][,F[.C][OPTS]] para posição inicial e final, onde F é um número de campo e C uma posição de caractere no campo. Ambos são origem 1 e a posição de parada é padronizada para o final da linha.
-k1
- primeiro campo
-k3
- terceiro campo
-k1,3
- iniciar o primeiro campo, parar o terceiro campo
-k2,3
- iniciar o segundo campo, parar o terceiro campo
-n
- comparar de acordo com o valor numérico da string