grep
druckt alle Zeilen passend zu dem von Ihnen bereitgestellten Muster. Wenn Sie nur den Teil der Linie drucken möchten, der dem Muster entspricht, können Sie das -o übergeben Möglichkeit:
-o, --only-matching Gibt nur die übereinstimmenden (nicht leeren) Teile einer übereinstimmenden Zeile aus, wobei jeder dieser Teile in einer separaten Ausgabezeile steht.
So:
echo 'Here is a line mentioning 99% somewhere' | grep -o '[0-9]+'
Wenn Sie versuchen:
echo "99%" |grep -o '[0-9]*'
Es gibt zurück:
99
Hier sind die Details zu -o
(oder --only-matching
flag) funktioniert von der grep manpage.
Gibt nur die übereinstimmenden (nicht leeren) Teile übereinstimmender Zeilen aus, wobei jeder dieser Teile in einer separaten Ausgabezeile angezeigt wird. Ausgabezeilen verwenden dieselben Begrenzer wie Eingaben, und Begrenzer sind Nullbytes, wenn -z (--null-data) ebenfalls verwendet wird (siehe Andere Optionen).
Wie wäre es mit:
df . -B MB | tail -1 | awk {'print $4'} | cut -d'%' -f1