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}'
df
POSIX形式の代わりに実装された出力形式を使用するには、フィールド番号を調整してください。
そうでない場合、0+
比較は語彙的(9%
より大きい80
)です。+
バイナリ算術演算子を使用して強制的に$5
数値に変換し(したがって9%
)9
、比較結果を数値に変換します。使用+
1元)などの演算子はawk '+$5 >= 80'
一部のawk
実装では機能しますが、演算子が無視される従来の実装(A、W、およびKで書かれた実装)では機能しません。