zgrep 및 egrep 및 grep

zgrep 및 egrep 및 grep

다음의 차이점을 알 수 있는 기억하기 쉬운 경험 법칙이 있습니까?

  • egrep

  • zgrep

  • grep

내 컴퓨터에 어떤 것이 설치되어 있는지 아시나요?

(다음과 같은 내용도 있는 것 같습니다. "GNU grep이 설치되어 있으면..., 그렇지 않으면...")

답변1

zgrep일반적으로 압축 파일( 인식되는 압축 형식 사용) 로 압축되는 동반 스크립트 gzip(아래 Stephen Kitt의 설명 참조)입니다 . 이것은​grepgzipzip (pkzip 압축 아카이브 형식이 아니라 파일 압축/압축용).

egrep은 1970년대 후반 Unix V7에 도입된 명령으로, 이전 명령(그 자체는 고대 텍스트 편집기 의 명령을 grep구현하는 별도의 명령 ) 에 비해 새로운 정규식 알고리즘과 구문을 갖습니다 . 이것은​g/re/pedgrep이자형대신 확장 정규 표현식(ERE)기본 정규식grep(BRE)는 // sed/ 로 이해됩니다 ed.vi

\{및 등 의 다른 연산자는 \<나중에 일부 구현에 추가되었지만 grep어떤 측면에서는 egrep더 이상 기여 하지 않았습니다.grep확장하다비교하다 egrep.

1990년대 초 POSIX는 단일 명령( 작업 수행을 의미함 )으로 egrep통합하고 ERE의 연산자를 RE 의 연산자 와 동일하게 만들려고 했습니다 (따라서 이전 버전과 호환되지 않음 ). 또한 옵션을 지정합니다.grepgrep -Eegrep{min,max}\{min,max\}grepegrep-F에프고정 문자열유틸리티를 검색하고 교체합니다 fgrep.

오늘날에는 egrep표준 명령이 아닙니다 fgrep. 대부분의 시스템에는 운영자가 있지만 일부 구현에서는 {min,max}운영자를 식별할 수 있고 일부 구현에서는 그렇지 않습니다.

grep그리고 grep -E그것은 표준입니다. 일부 구현에는 PCRE(또는 유사, PCRE 라이브러리와 함께 제공되는 명령 참조) 와 같은 grep더 다양한 정규식 구문을 인식하기 위한 추가 스위치가 있습니다 .grep -Pperlpcregrepgrep -X향상시키다정규식...

지원되는 캐리어 목록은 grep시스템마다 다릅니다. grep -E이식성을 위해 POSIX 지정 목록으로 제한됩니다.

Solaris에서는 POSIX /usr/xpg4/bin/grep/bin호환되지 않는 .

다양한 압축 라이브러리/도구가 zgrep, bzgrepxzgrep스크립트를 제공하지만 표준은 없습니다.

POSIX에서 지정한 유일한 압축기는 다음과 같습니다.compress/uncompress이것은 더 이상 아무도 사용하지 않는 1980년대 초반의 오래된 압축 형식입니다.

gzip(GNU zip) 오늘날에도 여전히 사용되고 gzip대부분의 시스템(GNU 구현 또는 복제)에서 찾을 수 있는 또 다른 고대 압축 형식을 이해합니다. 따라서 다음을 수행할 수 있어야 합니다.

gzip -d < file.gz | grep BRE

또는:

gzip -d < file.gz | grep -E ERE

grepgzip 압축 파일 로 변환합니다 . 적절한 도구에 액세스할 수 있는 한 다른 압축 형식에도 동일한 작업을 수행할 수 있습니다.

관련 정보