如何在 perl 脚本中比较/获取较大的值?

如何在 perl 脚本中比较/获取较大的值?

尝试使用 perl 脚本获取硬盘使用率的百分比。[通过获取“df -H”输出的第 5 列,显示使用率百分比]。

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

其给出了输出。

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

现在,如果任何输出超过 90%,则需要获取值。尝试像这样 grepping。[这里是 '3',实际脚本中是 '9',代表 90% 到 99% 的值]

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

但问题是:

  1. 这在终端中有效,但在脚本中无效。
  2. 如果我们 grep "9*",值 '9' 也会被视为对吗?

该怎么办?除了 'grep' 还有其他选择吗?

答案1

您可以在 Perl 中使用数字比较:

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

运行身份

script.pl 90

相关内容