web-dev-qa-db-ja.com

カット/ grep df -h

「Avail」列の下にあるマウントポイント「3.1T」を取得するにはどうすればよいですか(grepまたはcutを使用)。

Filesystem                            Size  Used Avail Use% Mounted on

vstorage://cluster07                  4.0T  907G  3.1T  23% /vstorage/cluster07
2
Luan Pham

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
6
user88036

dfに何を出力するかを伝えます:

df -h --output=avail | tail -n1

注:これは、すべての* nixに移植できるとは限りません。

6
pLumo

以下のコマンドを試してください。

df -h | awk '/\/vstorage\/cluster07/ {print $4}'
3
Stack EG

sedの場合:

df -h | sed -rn 's|[^ ]+ +([^ ]+) .*|\1|p'

または、grepを使用:

df -h | grep -Eo '[0-9]+%'

最後のものは、%の出力のちょうど1つのdf -h文字に依存しているため、少し粗雑かもしれません。しかし、それは非常にシンプルで効果的です。

0
Hkoof