fs使用率が80%を超えるdf行のみを表示

fs使用率が80%を超えるdf行のみを表示
root@SERVER ~$ df
Filesystem  512-blocks  Free    %Used   Iused   %Iused  Mounted on
/dev/YXCV   655360      365632  45% 6322    13% /
/dev/ASDF   3801088     670648  83% 41759   32% /usr
/dev/ASR    1048576     500496  53% 5555    9%  /var

df使用率が80%以上の行のみを表示するようにコマンド出力をパイプするにはどうすればよいですか?

例:以下のみが表示されます。

/dev/ASDF   3801088     670648  83% 41759   32% /usr

ベストアンサー1

スペースを含むデバイス名がないとします(出力を解析する際に問題が発生しますdf)。

df -P | awk '0+$5 >= 80 {print}'

dfPOSIX形式の代わりに実装された出力形式を使用するには、フィールド番号を調整してください。

そうでない場合、0+比較は語彙的(9%より大きい80)です。+バイナリ算術演算子を使用して強制的に$5数値に変換し(したがって9%9、比較結果を数値に変換します。使用+ 1元)などの演算子はawk '+$5 >= 80'一部のawk実装では機能しますが、演算子が無視される従来の実装(A、W、およびKで書かれた実装)では機能しません。

おすすめ記事