「Avail」列の下でマウントポイント「3.1T」を取得する方法(grepまたはcutを使用)?
Filesystem Size Used Avail Use% Mounted on
vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07
答え1
df
何を出力するか教えてください:
df -h --output=avail | tail -n1
注:これはすべての* nixに移植可能ではない可能性があります。
答え2
使用awk
awk '{print $4}'
3.1T
echo vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07 | awk '{print $4}'
またはgrep
grep -o '\b3.1T\b'
3.1T
echo vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07 | grep -o '\b3.1T\b'
\b in a regular expression means "word boundary".
-o, --only-matching
またはcut
:
cut -d" " -f4
3.1T
echo vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07 | cut -d" " -f4
実際には、テーブルを固定幅テーブルに変換してから、cut
次のように使用する必要があります。
echo "vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07" | awk '{for(i=1;i<=NF;i++) { printf "%-5s",$i } ; printf("\n"); }' | cut -d" " -f3
3.1T
答え3
次のコマンドを試してください。
df -h | awk '/\/vstorage\/cluster07/ {print $4}'
答え4
そしてsed
:
df -h | sed -rn 's|[^ ]+ +([^ ]+) .*|\1|p'
または以下を使用してgrep
:
df -h | grep -Eo '[0-9]+%'
%
最後のものは出力の1つの文字にのみ依存するため、少し粗雑ですdf -h
。しかし、それは非常にシンプルで効果的です。