Vous pouvez utiliser awk,
df | awk '$1=="/dev/sda"{print $4}'
Portable :
df -P /dev/sda1 | awk 'NR==2 {print $4}'
Le -P
l'option garantit que df
imprimera la sortie dans le format attendu, et en particulier ne coupera pas la ligne après le nom du périphérique même si elle est longue. Passer le nom de l'appareil comme argument à df
supprime tout danger lié à l'analyse, comme l'obtention d'informations pour /dev/sda10
lorsque vous interrogez /dev/sda1
. df -P
imprime simplement deux lignes, la ligne d'en-tête (que vous ignorez) et la ligne de données où vous imprimez la colonne souhaitée.
Il y a un risque que df
affichera un nom de périphérique contenant des espaces, par exemple si le volume est monté par nom et que le nom contient des espaces, ou pour un volume NFS dont le point de montage distant contient des espaces. Dans ce cas, il n'existe aucun moyen entièrement portable d'analyser la sortie de df
. Si vous êtes certain que df
affichera le nom exact de l'appareil que vous lui passerez (ce n'est pas toujours le cas), vous pouvez le supprimer :
df -P -- "$device" | awk -vn=${#device} 'NR==2 {$0 = substr($0, n+1); print $3}'
Vous pouvez utiliser un awk
df | grep sda | awk '{print $4}'