du -xh / | grep -P "G\t" 명령이 설명되었나요?

du -xh / | grep -P "G\t" 명령이 설명되었나요?

나는이 명령을 발견했습니다

du -xh / | grep -P "G\t"

-P저는 스위치 grep와 그 기능에 관심이 있습니다. 그리고 혹시 이 "G\t"부분이 어떤 역할을 하는지 설명해주실 수 있는 분 계신가요?

du -xh명령의 기본 사항을 설명하지 마십시오 grep.

$ du -xh / | grep -P "G\t"
5.1G    /var/oracle/XE/datafile
5.1G    /var/oracle/XE
5.1G    /var/oracle
1.1G    /var/lib
6.9G    /var
1.9G    /opt/softwareag/webMethods/install/fix
1.9G    /opt/softwareag/webMethods/install
1.2G    /opt/softwareag/webMethods/Designer
1.3G    /opt/softwareag/webMethods/common
1.9G    /opt/softwareag/webMethods/CCE
1.2G    /opt/softwareag/webMethods/IntegrationServer/instances/default/replicate/salvage
3.0G    /opt/softwareag/webMethods/IntegrationServer/instances/default/replicate
2.3G    /opt/softwareag/webMethods/IntegrationServer/instances/default/packages
5.5G    /opt/softwareag/webMethods/IntegrationServer/instances/default
5.5G    /opt/softwareag/webMethods/IntegrationServer/instances
5.7G    /opt/softwareag/webMethods/IntegrationServer
16G     /opt/softwareag/webMethods
16G     /opt/softwareag
16G     /opt
1.1G    /usr/share
3.0G    /usr
11G     /u01/app/oracle/oradata/XE
11G     /u01/app/oracle/oradata
12G     /u01/app/oracle
12G     /u01/app
12G     /u01
39G     /

답변1

매뉴얼에 설명된 대로 grepPCRE -P(Perl Compatible Regular Expressions) 사용이 허용됩니다.

PCRE 표현식은 탭 문자와 G\t일치합니다 .G

결과적으로 크기가 GB 단위인(또는 이름이 패턴과 일치하는) 디렉터리 목록만 얻을 수 있습니다.

보다 안정적인 대체 파이프는 G탭으로 구분된 첫 번째 열의 끝과만 일치합니다.

... | awk -F '\t' '$1 ~ /G$/'

또한 기가바이트보다 작거나 큰 단위로 항목을 표시하려면 로 변경 G하십시오 [KMGTPEZY].

답변2

-P기본 엔진이 아닌 Perl 호환 정규식 엔진을 활성화합니다. 귀하의 예에서는 \t탭 문자로 처리 되어야 합니다 .

그렇지 않으면 정상 (escaped ) grep으로 간주됩니다 . 추신: 매뉴얼 페이지를 기반으로 쉽게 알아낼 수 있습니다.t\


옵션

 

    <...>
    일치자 선택
    <...>
    -P,--perl-regexp
      패턴을 Perl 호환 정규식(PCRE)으로 해석합니다. 이는 실험적이며grep -P구현되지 않은 기능에 대해 경고할 수 있습니다.

관련 정보