1

У меня есть один файл, который содержит детали пространства в хранилищах данных. Я хочу отсортировать их по доступному в них свободному пространству.

Файл:

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

Вывод должен выглядеть так:

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

Я попытался использовать sed и awk, но не смог найти убедительного решения. Пожалуйста помоги.

1 ответ1

3

Если вы посмотрите на man sort вы обнаружите, что сортировка (GNU) позволяет указать поле для сортировки. Пытаться:

sort -n -t: -k4 -r

-n означает сортировать численно, а не лексикографически.

-t: указывает использовать : для разделения (разделения) полей.

-k4 говорит ему использовать четвертое поле.

-r говорит, что нужно изменить результат.


Это предостережение не работает, когда у вас есть : в имени файла (который сместит поля / столбцы). Если это требование, самый простой путь - это скрипт (например, perl или python).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .