Eu tenho um arquivo que contém detalhes de espaço em armazenamentos de dados. Quero classificá-lo de acordo com o espaço livre disponível neles.
O arquivo é:
Name:VSP-01-32 Capacity:2047 Free Space:144
Name:VSP-02-33 Capacity:2047 Free Space:333
Name:VSP-03-34 Capacity:2047 Free Space:163
Name:VSP-04-35 Capacity:2047 Free Space:110
Name:VSP-05-36 Capacity:2047 Free Space:256
Name:VSP-06-37 Capacity:2047 Free Space:417
A saída deve ser semelhante a:
Name:VSP-06-37 Capacity:2047 Free Space:417
Name:VSP-02-33 Capacity:2047 Free Space:333
Name:VSP-05-36 Capacity:2047 Free Space:256
Name:VSP-03-34 Capacity:2047 Free Space:163
Name:VSP-01-32 Capacity:2047 Free Space:144
Name:VSP-04-35 Capacity:2047 Free Space:110
Tentei usar sed e awk, mas não consegui encontrar uma solução convincente. Por favor ajude.
Responder1
Se você olhar, man sort
descobrirá que a classificação (GNU) permite especificar o campo pelo qual classificar. Tentar:
sort -n -t: -k4 -r
-n
significa classificar numericamente em vez de lexicograficamente.
-t:
diz para usar :
para delimitar (dividir) campos.
-k4
diz para usar o quarto campo.
-r
diz para reverter o resultado.
Isso tem a ressalva de não funcionar quando você tem um :
no nome do arquivo (o que mudará os campos/colunas). Se isso for um requisito, a maneira mais fácil seria um script (por exemplo, perl ou python).