df -kコマンドで数値を%に一致させる方法

df -kコマンドで数値を%に一致させる方法

私のbashスクリプトでdf -kコマンドを使って/ varパーティションの使用容量を印刷したいと思います。

私は次のことを行います

     df -k | grep var | awk '{print $5}'

問題は、「use%」の数字が4番目のフィールドに存在する場合もあり、5番目のフィールドに存在する場合もあり、他のフィールドに6つ以上が存在する場合もあることです。

だから合わせてみたい数値%varに分割

varパーティションの使用%の数を一致させる方法を提案します(エレガントな方法)

ありがとう

実施例1

df -k

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             13204256   4247972   8274728  34% /
/dev/sda5              5080796    141540   4677000   3% /tmp
/dev/sda2             14013128   7578564   5711240  58% /var
/dev/sda1               194442     40649    143754  23% /boot
tmpfs                  1037756         0   1037756   0% /dev/shm

実施例2

 df -k

  Filesystem           1K-blocks      Used Available Use% Mounted on
  /dev/mapper/SysGroup-lv_root
                  18578172   2680752  14953704  16% /
  tmpfs                   510240         0    510240   0% /dev/shm
  /dev/sda1               198337     50064    138033  27% /boot
  /dev/mapper/SysGroup-lv_tmp
                   5160576    141464   4756968   3% /tmp
  /dev/mapper/SysGroup-lv_var
                  28899452   3481568  23949880  13% /var

ベストアンサー1

純粋なgrepソリューションはどうですか?

df -k | grep var | grep -o '[0-9]*%'

その後、Perl正規表現を使用してこれら2つのgrepを連結できます。

df -k | grep -Po 'var.* \K[0-9]*%'

おすすめ記事