Awk
僅顯示 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
假設您沒有包含空格的設備名稱(在解析 的輸出時會很痛苦
df
):df -P | awk '0+$5 >= 80 {print}'
如果要使用實現的
df
輸出格式而不是 POSIX 格式,請調整欄位編號。如果沒有
0+
,則比較將是詞法的(9%
然後將大於80
)。通過使用+
二元算術運算符,我們強制$5
將其轉換為數字(因此9%
變為9
)並且比較是數字的。使用+
一元運算符(如awk '+$5 >= 80'
)在某些awk
實現中有效,但在忽略該運算符的傳統實現(由 A、W 和 K 編寫的)中無效。