Puoi usare awk,
df | awk '$1=="/dev/sda"{print $4}'
Portabile:
df -P /dev/sda1 | awk 'NR==2 {print $4}'
Il -P
l'opzione assicura che df
stamperà l'output nel formato previsto e in particolare non interromperà la riga dopo il nome del dispositivo anche se è lunga. Passare il nome del dispositivo come argomento a df
rimuove qualsiasi pericolo dall'analisi, come ottenere informazioni per /dev/sda10
quando stai interrogando /dev/sda1
. df -P
stampa solo due righe, la riga di intestazione (che ignori) e quella di dati in cui stampi la colonna desiderata.
C'è il rischio che df
visualizzerà un nome di dispositivo contenente spazi, ad esempio se il volume è montato per nome e il nome contiene spazi o per un volume NFS il cui punto di montaggio remoto contiene spazi. In questo caso, non esiste un modo completamente portabile per analizzare l'output di df
. Se sei sicuro che df
visualizzerà il nome esatto del dispositivo che gli passi (non è sempre così), puoi rimuoverlo:
df -P -- "$device" | awk -vn=${#device} 'NR==2 {$0 = substr($0, n+1); print $3}'
Puoi usare un awk
df | grep sda | awk '{print $4}'