Hier ist die Ausgabe von 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
Beim Ausführen des folgenden Befehls wurde 18 % angezeigt.
[root@ip-10-0-7-225 ~]# df / | grep / | awk '{ print $5}'| sed 's/5//g'
18 %
Der Punkt ist, wenn ich den sed-Teil „s/5//g“ ändere, kommt immer noch ein Ergebnis von 18 % heraus. Wie ist das?
Antwort1
sed 's/5//g'
bedeutet hier sehr wahrscheinlich, dass eine Person, die diese gesamte Befehlszeile eingegeben hat, beabsichtigt hat, das Prozentzeichen aus der Ausgabe zu entfernen, aber das übersehen hat Shiftund 5
stattdessen erhalten hat %
.
In seiner aktuellen Form weist es an, aus der Ausgabe sed
zu entfernen 5
, was keinen Sinn ergibt.
Antwort2
grep – greps für die erste Zeile (enthält /)
awk - druckt die 5. Spalte aus (18%)
sed – ersetzt 5 durch nichts – es hat keine Auswirkung auf den String von oben (18 %), da dieser keine 5 enthält.