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.