尝试使用 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
但问题是:
- 这在终端中有效,但在脚本中无效。
- 如果我们 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