"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]+%'
%
마지막 것은 출력에서 하나의 문자 에만 의존하기 때문에 약간 조잡할 수 있습니다 df -h
. 그러나 그것은 매우 간단하고 효과적입니다.