Linux ordena segunda última coluna

4

Gostaria de saber como classificar a segunda última coluna? Tem a palavra "dias=" na frente do número. Eu sou capaz de obter a coluna com awk '{print $ (NF-1)}', mas a classificação está errada.

    457000      (test2) && (SGD||RMB||HKD||YEN)    days=5000    71
    37622 (this is || test1)&&(SGD||HKD||RMB) days=630 40010 
    43944 (this is)&&(SGD||HKD) days=80 102732 
    79378 (this is||test2)&&(HKD||RMB)   days=800 205425 

O resultado que estou procurando é

    43944 (this is)&&(SGD||HKD) days=80 102732 
    37622 (this is || test1)&&(SGD||HKD||RMB) days=630 40010 
    79378 (this is||test2)&&(HKD||RMB) days=800 205425
    457000      (test2) && (SGD||RMB||HKD||YEN)    days=5000    71
    
por user11496 20.03.2012 / 02:48

1 resposta

8

Um pouco hacky, mas deve funcionar:

awk '{print substr($(NF-1), 6), $0}' file | sort -g | cut -d' ' -f2-

Ele duplica a penúltima coluna na frente (descartando o days= ), classifica numericamente e, em seguida, remove a primeira coluna (a segunda duplicada para a última).

    
por 20.03.2012 / 04:07