$ sort -t $'\t' -k 1rn,1 -k 2,2rn -k 3f,4 listaprezzi
2050 900 bananas 5
1905 700 grapes 17
250 4000 oranges 10
230 9200 figs 4
220 5000 lemons 10
200 8000 pears 8
Quero classificar a primeira coluna listaprezzi
numericamente ao contrário (opção rn
), a segunda também rn
e a terceira em ordem alfabética ( f
). Qual é o comando correto?
Já tentei de várias maneiras mas sem sucesso.
Responder1
Se entendi corretamente sua pergunta, você deseja reorganizar seus dados, ou seja, classificar de forma independente (para cima ou para baixo) campos diferentes da mesma linha. Você não pode fazer isso com bare sort
, você precisa usar ferramentas adicionais, por exemplo, com a ajuda de awk
e paste
você pode escrever o seguinte:
$ paste <(awk '{print $1}' listaprezzi | sort -nr) <(awk '{print $2}' \
listaprezzi | sort -nr) <(awk '{print $3}' listaprezzi | sort) <(awk \
'{print $4}' listaprezzi)
E o resultado é
2050 9200 bananas 5
1905 8000 figs 17
250 5000 grapes 10
230 4000 lemons 4
220 900 oranges 10
200 700 pears 8