> 텍스트 처리 및 검색 > egrep

egrep: 확장 정규 표현식으로 텍스트 검색

egrep은 grep 명령어의 한 변형으로, 기본적으로 확장 정규 표현식(ERE)을 사용하여 파일에서 패턴을 검색하고 일치하는 줄을 출력합니다. 이는 `grep -E`와 동일한 기능을 제공하며, `+`, `?`, `|`, `()`와 같은 메타문자를 이스케이프 없이 바로 사용할 수 있어 복잡한 패턴 매칭에 유용합니다.

개요

egrep은 텍스트 파일에서 특정 패턴을 포함하는 줄을 찾을 때 사용됩니다. 일반 grep과 달리, egrep은 확장 정규 표현식(ERE)을 기본적으로 지원하여 더욱 유연하고 강력한 패턴 매칭이 가능합니다.

주요 특징

  • 확장 정규 표현식(ERE) 기본 지원
  • `grep -E`와 기능적으로 동일
  • 다양한 옵션을 통한 검색 및 출력 제어
  • 파이프(|)와 함께 사용하여 다른 명령어의 출력 필터링

주요 옵션

egrep 명령어와 함께 자주 사용되는 주요 옵션들입니다.

검색 제어

출력 형식

생성된 명령어:

명령어를 조합해 보세요.

설명:

`egrep` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

egrep 명령어를 활용한 다양한 사용 예시입니다.

기본 확장 정규 표현식 검색

egrep 'apple|banana' fruits.txt

파일에서 'apple' 또는 'banana'가 포함된 줄을 검색합니다.

대소문자 무시하고 검색

egrep -i 'error' logfile.log

로그 파일에서 'error' 또는 'ERROR' 등 대소문자 구분 없이 'error'를 포함하는 줄을 검색합니다.

주석(#)으로 시작하지 않는 줄 출력

egrep -v '^#' config.ini

설정 파일에서 주석 처리된 줄을 제외하고 실제 설정 내용만 확인합니다.

특정 디렉토리에서 재귀적으로 검색

egrep -r 'function_name' ./src

현재 디렉토리의 'src' 하위 디렉토리 내 모든 파일에서 'function_name'을 검색합니다.

줄 번호와 함께 패턴 검색

egrep -n 'keyword' document.txt

문서 파일에서 'keyword'를 검색하고, 일치하는 줄의 번호를 함께 출력합니다.

프로세스 목록에서 특정 프로세스 검색

ps aux | egrep 'apache|nginx'

`ps aux` 명령의 출력에서 'apache' 또는 'nginx' 관련 프로세스를 필터링하여 확인합니다.

팁 & 주의사항

egrep 사용 시 유용한 팁과 주의할 점입니다.

grep -E와의 관계

대부분의 최신 리눅스 시스템에서 `egrep`은 `grep -E`에 대한 심볼릭 링크 또는 별칭입니다. 따라서 `grep -E`를 사용하는 것이 더 일반적이고 권장됩니다.

  • `egrep` == `grep -E`
  • 복잡한 정규 표현식 사용 시 `egrep` 또는 `grep -E`가 일반 `grep`보다 편리

성능 고려

정규 표현식이 아닌 고정 문자열을 검색할 때는 `fgrep` (또는 `grep -F`)을 사용하는 것이 성능상 더 유리할 수 있습니다. `fgrep`은 정규 표현식 파싱 오버헤드가 없기 때문입니다.

  • 고정 문자열 검색: `fgrep` (또는 `grep -F`) 사용
  • 정규 표현식 검색: `egrep` (또는 `grep -E`) 사용

정규 표현식 이스케이프

일반 `grep`에서는 `+`, `?`, `|`, `()` 등의 확장 정규 표현식 메타문자를 사용하려면 백슬래시(`\`)로 이스케이프해야 하지만, `egrep`에서는 이스케이프 없이 바로 사용할 수 있습니다.

  • `egrep`에서는 `(a|b)+`와 같이 직접 사용
  • 일반 `grep`에서는 `\(a\|b\)\+`와 같이 이스케이프 필요

동일 카테고리 명령어