Como ordenar colunas independentemente? [fechadas]

2
$ 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

Eu quero classificar a primeira coluna de listaprezzi numericamente na ordem inversa (opção rn ), a segunda também rn e a terceira em ordem alfabética ( f ). Qual é o comando correto?

Eu tentei muitas maneiras, mas não tive sucesso.

    
por elbarna 14.10.2014 / 00:34

1 resposta

4

Se eu entendi corretamente sua pergunta, você deseja reorganizar seus dados, ou seja, classificar independentemente (para cima ou para baixo) campos diferentes da mesma linha. Você não pode fazer isso com 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
    
por 14.10.2014 / 01:21