grep
stamperà qualsiasi riga corrispondente al modello fornito. Se vuoi stampare solo la parte della linea che corrisponde al motivo, puoi passare -o opzione:
-o, --only-matching Stampa solo le parti corrispondenti (non vuote) di una riga corrispondente, con ognuna di queste parti su una riga di output separata.
In questo modo:
echo 'Here is a line mentioning 99% somewhere' | grep -o '[0-9]+'
Se provi:
echo "99%" |grep -o '[0-9]*'
Restituisce:
99
Ecco i dettagli sul -o
(o --only-matching
flag) funziona dalla pagina man di grep.
Stampa solo le parti corrispondenti (non vuote) delle righe corrispondenti, con ciascuna di queste parti su una riga di output separata. Le righe di output utilizzano gli stessi delimitatori dell'input e i delimitatori sono byte nulli se viene utilizzato anche -z (--null-data) (vedere Altre opzioni).
Che ne dici di:
df . -B MB | tail -1 | awk {'print $4'} | cut -d'%' -f1