Permitam-me esclarecer:
Suponha que eu tenho algumas palavras-chave com frequência de uso:
12 Hi
7 Hash
7 C++
9 Superuser
17 Stackoverflow
9 LaTeX
42 Life
9 Ubuntu
O que eu quero é classificar esses dados com base na frequência em ordem decrescente e, se houver alguns valores iguais, ele deverá usar a segunda coluna em ordem crescente.
sort -n -r foo.txt
A primeira parte, mas a segunda coluna também são reversed
:
42 Life
17 Stackoverflow
12 Hi
9 Ubuntu
9 Superuser
9 LaTeX
7 Hash
7 C++
Como posso obter os seguintes resultados?
42 Life
17 Stackoverflow
12 Hi
9 LaTeX
9 Superuser
9 Ubuntu
7 C++
7 Hash
Eu acho que tenho que usar -k
argumentos, mas não consigo descobrir como!
Eu quero saber como isso pode ser feito usando apenas o sort
comando de bash
. No entanto, se não for possível conseguir isso apenas sort
, outros comandos devem ser compatíveis com o shell Bourne.
text-processing
sort
Pouya
fonte
fonte
-g
(numérico geral) em vez de-n
para comparações numéricas é mais seguro: funciona corretamente para ponto flutuante e números inteiros.Respostas:
Especifique as chaves de classificação separadamente com os critérios:
Isso especifica que a primeira chave é classificada numericamente na ordem inversa, enquanto a segunda é classificada de acordo com a ordem de classificação padrão .
Citando a partir da classificação POSIX :
Isso produziria:
fonte