Вместо того, чтобы использовать tr
и awk
дважды, просто используйте awk один раз:
df -g | awk '{ sub("%", "", $4); if ($4 >= 75) { print $4, $7 }}' | sort -n
Это заменяет знаки процента в поле 4 пустой строкой (, удаляя их ); если оставшееся значение не менее 75, выведите поля 4 и 7, а затем передайте их для сортировки.
Улучшение, основанное на запоминании одного из ответов Стефана:
df -g | awk '$4+0 >= 75 { print $4, $7 }' | sort -n
Добавление "+0" приводит к численному сравнению вместо строго строкового -сравнения.
Если вы хотите сохранить заголовок, измените критерии на:
df -g | awk 'NR < 2 || $4+0 >= 75 { print $4, $7 }' | sort -n
Решение этой проблемы заключается в использовании следующей команды:
parted /dev/sda print free Fix
Судя по всему, скриптовый режим parted не позволит вам "исправить" до нужного размера. Большинство других инструментов также не позволят вам автоматизировать это с помощью скрипта, по сути, это единственное решение, которое я нашел. Стоит отметить, что это не правильное решение, но похоже, что это единственный способ добиться этого.