grep
imprimirá cualquier línea coincidiendo con el patrón que proporcione. Si solo desea imprimir la parte de la línea que coincide con el patrón, puede pasar la -o opción:
-o, --solo-coincidencia Imprima solo las partes coincidentes (no vacías) de una línea coincidente, con cada parte en una línea de salida separada.
Así:
echo 'Here is a line mentioning 99% somewhere' | grep -o '[0-9]+'
Si intentas:
echo "99%" |grep -o '[0-9]*'
Devuelve:
99
Aquí están los detalles sobre el -o
(o --only-matching
flag) funciona desde la página del manual de grep.
Imprima solo las partes coincidentes (no vacías) de las líneas coincidentes, con cada una de esas partes en una línea de salida separada. Las líneas de salida usan los mismos delimitadores que las de entrada, y los delimitadores son bytes nulos si también se usa -z (--null-data) (consulte Otras opciones).
¿Qué tal:
df . -B MB | tail -1 | awk {'print $4'} | cut -d'%' -f1