私の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]*%'