Diga a df o que enviar:
df -h --output=avail | tail -n1
Note: this might not be portable to all *nixes.
Como posso obter o ponto de montagem "3.1T" sob a coluna "Avail" (usando grep ou cut)?
Filesystem Size Used Avail Use% Mounted on
vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07
Diga a df o que enviar:
df -h --output=avail | tail -n1
Note: this might not be portable to all *nixes.
Use awk
awk '{print $4}'
3.1T
echo vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07 | awk '{print $4}'
ou grep
grep -o '\b3.1T\b'
3.1T
echo vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07 | grep -o '\b3.1T\b'
\b in a regular expression means "word boundary".
-o, --only-matching
ou cut :
cut -d" " -f4
3.1T
echo vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07 | cut -d" " -f4
Note que, na prática, você precisaria converter sua tabela em uma tabela de larguras fixas e usar cut da seguinte forma:
echo "vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07" | awk '{for(i=1;i<=NF;i++) { printf "%-5s",$i } ; printf("\n"); }' | cut -d" " -f3
3.1T
experimente o comando abaixo,
df -h | awk '/\/vstorage\/cluster07/ {print $4}'
com sed :
df -h | sed -rn 's|[^ ]+ +([^ ]+) .*||p'
Ou com grep :
df -h | grep -Eo '[0-9]+%'
O último pode ser um pouco grosseiro, porque depende exatamente de um caractere % na saída de df -h . Mas é bastante simples e eficaz.