这是 df -h 的输出。
[root@ip-10-0-7-225 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 8.0G 1.5G 6.6G 18% /
devtmpfs 478M 0 478M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 13M 484M 3% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1000
因此,当运行以下命令时,它表示 18%。
[root@ip-10-0-7-225 ~]# df / | grep / | awk '{ print $5}'| sed 's/5//g'
18%
关键是如果我换成 sed 's/5//g' 部分,结果仍然是 18%。这是怎么回事?
答案1
sed 's/5//g'
这里很可能意味着一个人输入整个命令行的目的是从输出中删除百分号,但错过了Shift并得到了5
而不是%
。
在其当前形式中,它指示从输出中sed
删除,这是没有意义的。5
答案2
grep - grep 第一行(包含 /)
awk - 打印出第 5 列 (18%)
sed - 不替换 5 - 它对上面的字符串 (18%) 没有影响,因为它不包含 5。