A solução mais confortável para essa tarefa é awk
:
df -h /dev/sda2 | awk 'NR==2{print$4}'
Ou, se mais partições estiverem listadas, você pode escolher a linha certa pelo ponto de montagem:
df -h | awk '$1=="/dev/sda2"{print$4}'
Também é simples com sed
, mas é menos interessante se você precisar depurá-lo algumas montagens depois:
df -h /dev/sda2 | sed -rn '2s/^((\S+)\s+){4}.*//p'
df -h | sed -rn '/^\/dev\/sda2/s/^((\S+)\s+){4}.*//p'
Isso supõe o GNU sed
. A sintaxe compatível com POSIX inclui muitos tipos de escape:
df -h /dev/sda2 | sed -n '2s/^\(\(\S\+\)\s\+\)\{4\}.*//p'
df -h | sed -n '/^\/dev\/sda2/s/^\(\(\S\+\)\s\+\)\{4\}.*//p'