从 df 的输出中获取剩余磁盘 space

Get remaining disk space from df's output

我想获取主目录中的剩余磁盘 space:

df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           20G   15G  3.5G  81% /
/dev/root        20G   15G  3.5G  81% /
devtmpfs        990M  4.0K  990M   1% /dev
none            199M  2.7M  196M   2% /run
none            5.0M     0  5.0M   0% /run/lock
none            991M   12K  991M   1% /run/shm
/dev/sda2       894G  847G  1.9G 100% /home

注意:我需要从上面的输出中得到 1.9G

试一试:

df -h | awk '{print }'

虽然迂回,并绑定到 ext2,但这是 tune2fs

的一种方式
tune2fs /dev/sdc1 -l | egrep '^(Free blocks|Block size)' | 
    cut -d: -f2 | xargs |
    while read free size; 
    do 
        echo "$free blocks of size $size free: $((($size*$free)>>20)) mebibytes"
    done

尝试以下 awk 命令:

df -h | awk ' == "/home" { print  }'
  • == "/home" 仅处理第 6 个白色 space 分隔列包含 /home.
  • 的(一)行
  • { print } 打印该行的第 4 个白色 space 分隔字段,即剩余磁盘 space.

使用 grep 仅获取 /home 行,使用 awk 仅获取您想要的字段:

df -h | grep -w /home | awk '{print }'

尝试以下命令之一:

$ grep -o 1.9G <(df -h)
$ df -h|awk '/home/{print }'
$ grep home <(df -h) | awk '{print }'
$ df=($(tail -1 <(df -h))) echo ${df[3]}
$ vi -es +'%j|norm 3dWWd$' -c%p -cq! <(df -h)
$ printf "%s\n" $(tail -1 <(df -h))|tail -3|head -1
$ ex -s <(df -h|egrep -o "\S+\s+\S+\s+/home") +'norm Wd$' +%p -cq!