Sie können awk verwenden,
df | awk '$1=="/dev/sda"{print $4}'
Portabel:
df -P /dev/sda1 | awk 'NR==2 {print $4}'
Der -P Option stellt sicher, dass df druckt die Ausgabe im erwarteten Format und bricht insbesondere die Zeile nach dem Gerätenamen nicht um, selbst wenn sie lang ist. Übergabe des Gerätenamens als Argument an df beseitigt jede Gefahr beim Parsen, wie z. B. das Abrufen von Informationen für /dev/sda10 wenn Sie /dev/sda1 abfragen . df -P druckt nur zwei Zeilen, die Kopfzeile (die Sie ignorieren) und die eine Datenzeile, in der Sie die gewünschte Spalte drucken.
Es besteht die Gefahr, dass df zeigt einen Gerätenamen an, der Leerzeichen enthält, z. B. wenn das Volume nach Namen gemountet wurde und der Name Leerzeichen enthält, oder für ein NFS-Volume, dessen Remote-Mount-Punkt Leerzeichen enthält. In diesem Fall gibt es keine vollständig portable Möglichkeit, die Ausgabe von df zu parsen . Wenn Sie sich sicher sind, dass df den genauen Gerätenamen anzeigt, den Sie ihm übergeben (das ist nicht immer der Fall), können Sie ihn entfernen:
df -P -- "$device" | awk -vn=${#device} 'NR==2 {$0 = substr($0, n+1); print $3}'
Sie können ein awk verwenden
df | grep sda | awk '{print $4}'