Isso deve funcionar para todos os três df
de saídas:
df | awk '/\//{print $1,$(NF-1)}'
Esta é a saída de cada um dos exemplos que você publicou:
/dev/disk2 72%
/dev/hdv1 44%
/dev/root 17%
EXPLICAÇÃO:
O comando awk
procura linhas que contenham /
(assim, ignora os cabeçalhos) e imprime os primeiros campos ( $1
) e penúltimo ( $(NF-1)
). Se você quiser somente a porcentagem de uso, faça o seguinte:
df | awk '/\//{print $(NF-1)}'
Atualização:
Minha resposta acima fornecerá o campo %iused
na saída Mac df
. Se você quiser o Capacity
, faça isso (funciona nos três novamente):
df | perl -ne '/\// && do {/(.+?)\s.+?(\d+%)/ && print "$1 $2\n"}'
que também imprime o primeiro campo (o não-ganancioso (.+?)
, terminado por \s
) e o primeiro número percentual ( (\d+%)
, precedido pelo não-ganancioso .+?
).