df 출력의 콘텐츠 필터링

df 출력의 콘텐츠 필터링

서버에서 파일 시스템 사용량을 얻으려면 다음 명령이 있습니다.

df -k | awk '{print $5 " " $6}' | grep %

실행 후 결과는 다음과 같습니다.

97% /
0% /proc
0% /etc/mnttab
0% /dev/fd
46% /var
1% /var/run
1% /tmp
54% /opt/app/oracle
22% /opt/app/proviso

내 질문은 포함된 행을 사라지게 하려면 어떻게 해야 합니까 97% /?

답변1

다음 명령을 사용하여 필터링하고 정리할 수 있습니다 awk.

df -k | awk '/%/ && NR > 2 {print $5 " " $6}'

/%/그리고 같은 일을 하고 있어요 grep %.

NR > 2레이블과 선을 필터링합니다 /.

답변2

tail을 사용하여 첫 번째 줄을 삭제할 수 있습니다.

df -k | awk '{print $5 " " $6}' | grep % | tail --lines +2

+2라인 2부터 시작하는 모든 라인을 인쇄하려는 것을 나타냅니다.

답변3

df다음과 같이 반환할 때까지는 괜찮을 것입니다 .

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-lv_root
                  367G  246G  103G  71% /
tmpfs                  48G     0   48G   0% /dev/shm

이것은 분명히 스크립트/명령을 깨뜨릴 것입니다. 그래서 나는 당신에게 제안합니다항상 스크립트의 명령 -P에 키 적용df.
귀하의 원래 질문과 관련하여 간단한 정규식을 사용하여 이를 수행하겠습니다.

df -Ph  |awk '{if($6 ~ /^\/.+/) print $5, $6}'

관련 정보