You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用awk提取df命令输出的第二行可用空间值并赋值给变量

解决思路

这里有几种简单的方法可以实现你的需求:

方法1:用tail提取最后一行

直接取df输出的第二行(也就是数据行):

available_space=$(df -H --output=avail "${HOME}" | tail -n 1)

tail -n 1会只保留输出的最后一行,刚好跳过表头。

方法2:用awk跳过表头行

修正你之前的awk命令,通过记录号NR跳过第一行:

available_space=$(df -H --output=avail "${HOME}" | awk 'NR > 1')

NR是awk内置变量,表示当前处理的行号,NR>1就会只打印第二行及以后的内容,这里刚好只有第二行数据。

方法3:用df自带选项隐藏表头

如果你的系统是GNU环境(比如大多数Linux发行版),df支持--no-header选项直接去掉表头:

available_space=$(df -H --output=avail --no-header "${HOME}")

这种方式不需要额外的管道工具,更简洁高效。

为什么你之前的awk命令没用?

你写的awk -F"\n" '{print$1}'是把整个输入作为一个字段(因为用换行符做分隔符),所以print $1会输出所有内容,自然包含表头。awk默认就是按行处理的,不需要指定换行符作为分隔符,直接用行号过滤就好。

内容的提问来源于stack exchange,提问作者user19557344

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:30:48