使用 awk 从 df -h 的输出中打印特定行

使用 awk 从 df -h 的输出中打印特定行

当我运行 df -h 时,我看到:

/dev/sda2                     46G  3.2G   41G   8% /
udev                          24G  4.0K   24G   1% /dev
tmpfs                        9.5G   10M  9.5G   1% /run
none                         5.0M     0  5.0M   0% /run/lock
none                          24G     0   24G   0% /run/shm
/dev/mapper/DG9999-lvDG9999   82T   75T  7.5T  91% /DG9999
/dev/sda3                     20G  445M   19G   3% /home
clamfs                        82T   75T  7.5T  91% /DG9999/clamfs

我正在使用这个命令:

 df -h / | grep -v Filesystem | awk '{print $5}' | sed 's/%//g'

目前,输出显示了输出第一行中的第五列,df -h8。如何指定我对输出的第 6 行感兴趣,以便输出显示91.

谢谢

答案1

您需要指定适当的文件系统(或挂载点):

df -h /DG9999 | grep -v Filesystem | awk '{print $5}' | sed 's/%//g'

df在大多数 Linux 系统上解析 的输出时,您应该使用该-P选项来确保每个文件系统的信息保留在一行上:

df -hP /DG9999 | grep -v Filesystem | awk '{print $5}' | sed 's/%//g'

您可以组合所有输出操作以仅使用 AWK:

df -hP /DG9999 | awk '!/Filesystem/ { print substr($5, 1, length($5) - 1) }'

在任何最近的 GNU 设置上,您还可以运行

df --output=pcent /DG9999 | sed '1d;s/%//'

相关内容