Não tenho certeza do que você está tentando fazer com awk , mas você está complicando a expressão desnecessariamente. Tudo o que você precisa para produzir o sistema de arquivos, espaço livre e porcentagem de ocupação é:
df -h /|awk '{ print $1, $4, $5 }'
No entanto, isso não alinha os cabeçalhos com os dados. Para preservar o alinhamento, use algo como:
df -h /|awk '{ printf "%-60s %6s %6s\n", $1, $4, $5 }'
Aqui eu usei um primeiro campo grande porque meu disco de sistema está listado pelo UUID. Para mostrar porcentagem de espaço livre em vez de ocupação, você pode usar:
df -h /|awk '{ printf $5=="Use%"?"%-60s %6s Free%%\n":"%-60s %6s %6s%%\n", $1, $4, 100-$5 }'
Nesse caso, o sinal % é ignorado na expressão aritmética. Não sei df arredonda a porcentagem para o inteiro mais próximo, como assumi. Se arredondar para baixo, 100-$5 será arredondado para cima, então use 99-$5 para obter o espaço livre arredondado para baixo.