Как сравнить / получить большее значение в скрипте Perl? [закрыто]

Попытка Perl-скрипта получить % использования жесткого диска. [При получении 5-го столбца вывода 'df -H' отображается процент использования].

$thirdlast=`df -H`;
@matches=($thirdlast=~/(\S+%)/g);
print "@matches\n";

Это дает результат.

Use% 3% 1% 1% 0% 1%

Теперь необходимо получить значение, если какой-либо из этих выходных значений превышает 90%. Пробовал использовать grepping следующим образом. ['3' здесь, '9' в реальном скрипте, от 90% до 99 % values]

perl script.pl | grep -oh "3\w*"
3

Но проблемы следующие:

  1. Это работает в терминале, но не в скрипте.
  2. Если мы введем grep «9 *», значение «9» также будет считаться правильным?

Что можно сделать? Любой другой вариант, кроме grep ..?

-1
задан 14 May 2015 в 12:16

1 ответ

Можно использовать числовое сравнение в Perl:

#! /usr/bin/perl -l
@lines = `df -H`;
for (@lines) {
    @cols = split;
    print $cols[4] if $cols[4] > $ARGV[0];
}

Выполнение как

script.pl 90
0
ответ дан 14 May 2015 в 12:16

Другие вопросы по тегам:

Похожие вопросы: