【发布时间】:2020-04-10 22:35:47
【问题描述】:
我必须检查磁盘卷上的可用空间并使用命令df -h,它会产生以下输出:
Filesystem Size Used Avail Use% Mounted on
/dev/md0 27G 24G 2.1G 92% /
udev 506M 112K 506M 1% /dev
/dev/sda1 102M 40M 63M 39% /boot
这段脚本
my (@space, @freesp);
@space = grep /\/dev\/md0/,`df -h`;
print "@space\n";
给我
/dev/md0 27G 24G 2.1G 92% /
我可以在空格上拆分,给出$freesp[0]、$freesp[1] 等中的值。
但我想用空格删除或替换 G,以便我可以将 $freesp[3] 与某个值进行比较,然后继续执行我的脚本。
那么我必须使用什么正则表达式才能做到这一点,或者还有其他更好的方法吗?
这段代码对我有用,但我正在寻找我提到的方向。
#!/usr/bin/perl
use strict;
use warnings;
my (@space, @freesp);
@space = grep /\/dev\/md0/, `df`;
print "@space\n";
for (@space) {
chomp;
@freesp = split /\s+/, $_;
}
if ($freesp[3]/1024/1024 < 2.0) {
print "Space is less\n";
}
else {
print "Space is OK\n";
}
#print ($freesp[3]/1024/1024);
【问题讨论】: