在包含字符串的文件系统名称上使用GREP时获取使用率%

时间:2018-03-06 16:46:09

标签: linux

运行dh -h时,我有以下输出:

Filesystem      Size  Used Avail Use% Mounted on
udev            252G     0  252G   0% /dev
tmpfs            51G  298M   51G   1% /run
/dev/md2        873G  299G  529G  37% /
tmpfs           252G   70G  183G  28% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           252G     0  252G   0% /sys/fs/cgroup
/dev/md0        453M  142M  284M  34% /boot
tmpfs            51G     0   51G   0% /run/user/1002
tmpfs            51G     0   51G   0% /run/user/1004
tmpfs            51G     0   51G   0% /run/user/1005
tmpfs            51G     0   51G   0% /run/user/1008

我已构建此查询df -h / | grep -oP "(\d+(\.\d+)?(?=%))",成功获取/上的使用百分比,但是我无法对其进行一些更改。

我正在尝试更改它,以便我可以获取Filesystem名称以/dev/开头的所有行的使用百分比,因此在这种情况下它将是/dev/md2并且/dev/md0,其各自的整数为3734

对不起,如果这是微不足道的,有人能引导我朝正确的方向前进吗?感谢。

1 个答案:

答案 0 :(得分:1)

df -h | awk '$1 ~ /^\/dev/ { gsub(/%/, ""); print $5; }'在此处生成以下输出:

21
21
35

这是//home/boot的用法,因为所有这些文件系统列的开头都有^/dev

awk调用的作用:对于第一个字段与正则表达式/dev匹配的行,所有百分比都被空字符串替换,并打印第五个字段。