나는이 명령을 발견했습니다
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
매뉴얼에 설명된 대로 grep
PCRE -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
구현되지 않은 기능에 대해 경고할 수 있습니다.