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}'