Awk

僅顯示 fs 使用率超過 80% 的 df 行

  • February 24, 2021
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 編寫的)中無效。

引用自:https://unix.stackexchange.com/questions/15075