Вот вывод 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.