
/dev/sda
次の形式で出力を取得しようとしています。
20%(50GBのうち10GB使用)
私は以下を使用しようとしています:
df -h /dev/sda3|awk 'NR==2'|awk '{print $5}'
しかし、それはパーセンテージを提供します。 echoと複数のawkステートメントを試しましたが、コマンドが機能しないか、希望の出力を提供しません。
答え1
努力する
df -B1G /dev/sda1|awk 'NR==2{print $5,"("$3,"GB used out of",$2,"GB)."}'
-B1G
出力をGB単位で強制します。次に、必要なフィールドを削除します。
ややきれいなコード、同じ結果:
df -B1G /dev/sda1|awk 'NR==2{printf "%s (%d GB used out of %d GB).\n",$5,$3,$2}'
sed
バージョン:
df -B1G /dev/sda1|sed -n 's!^/[^ ]* *\([0-9]*\) *\([0-9]*\) *[0-9]* *\([0-9%]*\).*!\3 (\2 GB used out of \1 GB).!p'
答え2
次のコマンドを試すことができます。
df -Ph /dev/sda1|awk 'NR >1{print $(NF-1)"("$3" " "used out of " " " $2")"}'
注文する
df -Ph /dev/sda1|awk 'NR >1{print $(NF-1)"("$3" " "used out of " " " $2")"}'
31%(140M used out of 488M)