Como comparar / buscar o maior valor no script perl? [fechadas]

-1

Tentando usar um script perl para buscar o% de uso do disco rígido. [Ao buscar a quinta coluna da saída 'df -H', mostra a porcentagem de uso].

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

Está dando a saída.

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

Agora é necessário buscar o valor se qualquer um desses itens for acima de 90%. Tentei grepping assim. ['3' aqui, '9' no script real, para valores de 90% a 99%]

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

Mas os problemas são:

  1. Isso funciona no terminal, mas não no script.
  2. Se nós grep "9 *", o valor '9' também será considerado correto?

O que poderia ser feito? Qualquer outra opção que não seja 'grep' ..?

    
por kiran bbnl 14.05.2015 / 09:05

1 resposta

1

Você pode usar a comparação numérica em Perl:

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

Executar como

script.pl 90
    
por choroba 14.05.2015 / 09:21