전체 문자열 대신 단어 하나만 Grep

전체 문자열 대신 단어 하나만 Grep

/ 파티션의 디스크 공간을 모니터링하기 위해 간단한 스크립트를 작성 중이며 출력에서 ​​숫자를 파악하고 싶습니다.

tabbi@tabbi:~/scripts$ df -h / 
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       234G  7,6G  214G   4% /

"사용됨" 열에서 %를 제거하고 싶다고 가정해 보겠습니다. (또는 모든 위치에서 제거합니다.) 이를 사용할 때 df -h / | grep -v '%'아무 것도 인쇄되지 않습니다.

출력에서 % 기호를 제외하는 방법은 무엇입니까?

답변1

grep -v모두 삭제철사주어진 문자열과 일치하므로 귀하의 경우 "%"가 포함된 줄은 완전히 제거됩니다.

문자만 제거하려면 다음을 사용하십시오.tr:

df -h / | tr -d %

답변2

awk기본적으로 awk다음 명령을 사용하면 "%" 없이 / 디렉토리의 사용법을 얻을 수 있습니다 .

  • df 헤더를 설명할 출력의 마지막 줄을 선택합니다 - END;
  • 삭제"%";
  • 산출다섯필드(인쇄 비용 5달러).

    df -h / | awk '  END { gsub("%",""); print $5 } '
    

실행하세요:

$ df -h / | awk '  END { gsub("%",""); print $5 } '
4

또는 모든 숫자를 얻으십시오:

$ df -h / | awk '  END { gsub("%",""); gsub("G",""); print $2" "$3" "$4" "$5 } '
234 7,6 214 4

관련 정보