Můžete použít awk,
df | awk '$1=="/dev/sda"{print $4}'
Přenosně:
df -P /dev/sda1 | awk 'NR==2 {print $4}'
-P volba zajišťuje, že df vytiskne výstup v očekávaném formátu a zejména nepřeruší řádek za názvem zařízení, i když je dlouhý. Předání názvu zařízení jako argumentu df odstraňuje všechna nebezpečí vyplývající z analýzy, jako je získávání informací pro /dev/sda10 když zadáváte dotaz /dev/sda1 . df -P vytiskne pouze dva řádky, řádek záhlaví (který ignorujete) a jeden datový řádek, kde vytisknete požadovaný sloupec.
Existuje riziko, že df zobrazí název zařízení obsahující mezery, například pokud je svazek připojen podle názvu a název obsahuje mezery, nebo pro svazek NFS, jehož vzdálený bod připojení obsahuje mezery. V tomto případě neexistuje žádný plně přenosný způsob, jak analyzovat výstup df . Pokud jste si jisti, že df zobrazí přesný název zařízení, který mu předáte (není to vždy případ), můžete jej odstranit:
df -P -- "$device" | awk -vn=${#device} 'NR==2 {$0 = substr($0, n+1); print $3}'
Můžete použít awk
df | grep sda | awk '{print $4}'