Я хотел бы метод, чтобы захватить использование диска конкретного раздела, используя каталог, где раздел монтируется. Вывод должен быть целым числом без дополнения или следующих символов, так как я хотел бы сохранить его в переменной.
Я использовал df --output=pcent /mount/point
, но нужно обрезать вывод, так как он имеет ненужный заголовок, заполнение одним пробелом перед значением и символ% после значения следующим образом:
Use%
83%
В этом случае вывод, который я хотел бы, был бы просто 83
. Мне не известны какие-либо недостатки использования вывода df
, но я рад принять другие методы, которые не полагаются на него.
command-line
bash
scripts
disk-usage
Arronical
источник
источник
tr
, у меня в голове беспорядок с идеями sed и awk.Ответы:
Я бы использовал ...
Не уверен, что sed быстрее, но я не могу вспомнить значения sed.
источник
time
чтобы проверить это так же быстро, как и седь.tr
легче читать, чемsed
.Вот решение awk:
В основном здесь происходит то, что мы рассматриваем символ «%» как разделитель полей (разделитель столбцов) и печатаем первый столбец $ 1 только тогда, когда количество записей равно двум (
NR==2
часть)Если бы мы хотели использовать только
bash
инструменты, мы могли бы сделать что-то вроде этого:И для забавы, альтернатива
sed
через группу захвата и-r
для расширенного регулярного выражения:источник
sed
решение1d
удалить первую строку;
разделять командыs/^ //
убрать пробел из начала строкs/%//
удалить%
знакисточник
Вы можете передать по каналу,
grep
который просто извлекает цифры:Смотрите это в прямом эфире:
источник
Я наткнулся на сервер, где --output = pcent еще не был реализован, поэтому я использовал обычный вывод, отфильтрованный по столбцу, а затем регулярное выражение:
df /mount/point | awk '{print $5}' | tr -dc '0-9'
источник
Баш двухступенчатое решение
Будучи чем-то вроде фаната bash (Borne Again SHell) в прошлом году, я думал, что предложу решение, используя его.
df
вывод в переменнуюDF_PCT
.DF_PCT
и отображается на экране.5
в данном случае).источник
Вот еще одно решение:
источник