如何在Bash中过滤quota命令输出,仅提取指定分区的配额字段值
解决方案
你可以通过awk命令适配quota的换行输出结构,直接提取目标字段:
- 提取
/dev/mapper/work-home分区的已用空间(space字段):
quota -s abdalazizdemoura | awk '$1 == "/dev/mapper/work-home" {getline; print $1}'
运行后直接输出5068M,无其他冗余内容。
- 提取
/dev/mapper/work-home分区的配额上限(limit字段):
quota -s abdalazizdemoura | awk '$1 == "/dev/mapper/work-home" {getline; print $3}'
运行后直接输出5120M。
命令逻辑说明
$1 == "/dev/mapper/work-home":定位到目标分区名称所在的行getline:跳转读取当前行的下一行(即存储配额数值的行)print $1/print $3:输出对应位置的字段,对应输出结构里的第1列(space)、第3列(limit)
如果需要提取其他分区或者其他字段,修改匹配的分区路径和打印的字段序号即可。
内容的提问来源于stack exchange,提问作者Marcos Guilherme
相关产品推荐
相关产品推荐

