Сортировать файл по части столбца

Сортировать файл по части столбца

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

Файл:

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

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

sort -n -t: -k4 -r

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

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

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

-rсообщает ему, что нужно изменить результат на противоположный.


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

Связанный контент