「Avail」列の下にあるマウントポイント「3.1T」を取得するにはどうすればよいですか(grepまたはcutを使用)。
Filesystem Size Used Avail Use% Mounted on
vstorage://cluster07 4.0T 907G 3.1T 23% /vstorage/cluster07
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
df
に何を出力するかを伝えます:
df -h --output=avail | tail -n1
注:これは、すべての* nixに移植できるとは限りません。
以下のコマンドを試してください。
df -h | awk '/\/vstorage\/cluster07/ {print $4}'
sed
の場合:
df -h | sed -rn 's|[^ ]+ +([^ ]+) .*|\1|p'
または、grep
を使用:
df -h | grep -Eo '[0-9]+%'
最後のものは、%
の出力のちょうど1つのdf -h
文字に依存しているため、少し粗雑かもしれません。しかし、それは非常にシンプルで効果的です。