Что означает sed 's/5//g' в этой командной строке?

Что означает sed 's/5//g' в этой командной строке?

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

Связанный контент