grep
imprimera toutes les lignes correspondant au modèle que vous fournissez. Si vous souhaitez uniquement imprimer la partie de la ligne qui correspond au motif, vous pouvez passer le -o choix :
-o, --only-matching N'imprimez que les parties correspondantes (non vides) d'une ligne correspondante, chacune de ces parties sur une ligne de sortie distincte.
Comme ceci :
echo 'Here is a line mentioning 99% somewhere' | grep -o '[0-9]+'
Si vous essayez :
echo "99%" |grep -o '[0-9]*'
Il renvoie :
99
Voici les détails sur le -o
(ou --only-matching
flag) fonctionne à partir de la page de manuel de grep.
Imprimez uniquement les parties correspondantes (non vides) des lignes correspondantes, chacune de ces parties sur une ligne de sortie distincte. Les lignes de sortie utilisent les mêmes délimiteurs que l'entrée, et les délimiteurs sont des octets nuls si -z (--null-data) est également utilisé (voir Autres options).
Que diriez-vous :
df . -B MB | tail -1 | awk {'print $4'} | cut -d'%' -f1