우분투 bzegrep 완벽 가이드: 압축 풀지 않고 bz2 파일 검색하기

개요

리눅스 환경에서 bzip2로 압축된 대용량 로그 파일을 압축 해제 없이 바로 검색할 수 있는 bzegrep 명령어 실무 활용법을 다룹니다. 기본 사용법부터 복합 정규표현식 필터링까지 실습 예제를 통해 빠르게 익힐 수 있습니다.

실습 환경 구성 및 bzip2 패키지 준비

bzegrep 명령어 실습 진행을 위해 관련 도구가 포함된 bzip2 패키지를 설치합니다.

apt-get update -qq && apt-get install -y bzip2

bzegrep 실습을 위한 전용 공간을 만들고 이동하기 위해 mkdir -p /tmp/bzegrep-lab && cd /tmp/bzegrep-lab 명령어를 실행합니다.

mkdir -p /tmp/bzegrep-lab && cd /tmp/bzegrep-lab

검색 실습에 사용할 로그 데이터를 준비하기 위해 app.log 샘플 파일을 생성합니다.

printf ‘2026-10-15 10:00:01 INFO Server started\n2026-10-15 10:05:23 WARN High memory usage\n2026-10-15 10:12:45 ERROR Database connection failed\n2026-10-15 10:15:10 FATAL System crash detected\n’ > app.log

원본 파일을 유지한 채 실습용 압축 파일을 만들기 위해 bzip2 -k app.log 명령어를 실행합니다.

bzip2 -k app.log

압축 파일이 정상적으로 생성되었는지 확인하기 위해 ls -lh app.log.bz2 명령어로 파일 상세 정보를 조회합니다.

ls -lh app.log.bz2

압축 해제 없이 bz2 파일 내 키워드 검색하기

실습을 진행하기 위해 앞서 생성한 작업 디렉터리로 이동하고자 cd /tmp/bzegrep-lab 명령어를 실행합니다.

cd /tmp/bzegrep-lab

bzegrep 명령어를 사용하여 app.log.bz2 압축 파일을 해제하지 않고 내부에서 ERROR 키워드가 포함된 로그 라인을 검색합니다.
압축을 푸는 과정 없이 파일 내에 기록된 오류 메시지를 즉시 확인할 수 있습니다.

bzegrep ‘ERROR’ app.log.bz2

대소문자를 구분하지 않고 검색하기 위해 -i 옵션을 추가하여 warn 키워드를 검색합니다.
소문자로 지정했음에도 대문자로 기록된 WARN 로그 라인이 정상적으로 매칭되어 출력됩니다.

bzegrep -i ‘warn’ app.log.bz2

일치하는 내용이 위치한 행 번호를 함께 확인하기 위해 -n 옵션을 지정하여 Database 키워드를 검색합니다.
출력 결과 맨 앞에 원본 데이터 기준의 행 번호인 3이 함께 표시됩니다.

bzegrep -n ‘Database’ app.log.bz2

확장 정규표현식(ERE)을 활용한 다중 패턴 검색

실습을 계속 진행하기 위해 작업 디렉터리로 이동하고자 cd /tmp/bzegrep-lab 명령어를 실행합니다.

cd /tmp/bzegrep-lab

확장 정규표현식의 파이프(|) 기호를 사용하여 app.log.bz2 압축 파일 내에서 ERROR 또는 FATAL 키워드가 포함된 로그 라인을 동시에 검색합니다.
조건에 부합하는 오류 및 치명적 시스템 메시지가 함께 추출되어 출력됩니다.

bzegrep ‘ERROR|FATAL’ app.log.bz2

날짜 형식으로 시작하면서 WARN 또는 ERROR 키워드를 포함하는 라인을 찾기 위해 정규표현식 패턴을 지정하여 검색합니다.
복잡한 패턴 조건과 정확히 일치하는 경고 및 오류 로그 라인만 선별되어 출력됩니다.

bzegrep ‘^[0-9]{4}-[0-9]{2}-[0-9]{2}.*(WARN|ERROR)’ app.log.bz2

일치하지 않는 라인을 반전 출력하는 -v 옵션을 추가하여 INFO 키워드가 포함되지 않은 로그만 검색합니다.
일반 안내성 로그가 모두 제외되고 주의 및 오류 관련 로그 라인만 출력됩니다.

bzegrep -v ‘INFO’ app.log.bz2

다중 압축 파일 일괄 검색 및 파일명 출력

실습을 계속 진행하기 위해 작업 디렉터리로 이동하고자 cd /tmp/bzegrep-lab 명령어를 실행합니다.

cd /tmp/bzegrep-lab

다중 파일 검색 실습에 사용할 추가 로그 데이터를 준비하기 위해 worker.log 샘플 파일을 생성합니다.

printf ‘2026-10-15 11:00:00 INFO Service healthy\n2026-10-15 11:20:11 ERROR Timeout error\n’ > worker.log

실습용 압축 파일을 구성하기 위해 bzip2 worker.log 명령어를 실행하여 로그 파일을 압축합니다.

bzip2 worker.log

여러 압축 파일(*.bz2)을 대상으로 ERROR 키워드를 검색하며, 매칭된 결과 앞에 파일명을 명시적으로 표시하기 위해 -H 옵션을 지정합니다.
각 압축 파일 내에서 일치하는 오류 로그 라인과 함께 해당 파일의 이름이 앞에 붙어 출력됩니다.

bzegrep -H ‘ERROR’ *.bz2

로그 라인 전체 대신 검색 키워드가 포함된 압축 파일의 이름만 확인하기 위해 -l 옵션을 사용하여 검색합니다.
ERROR 키워드가 검출된 압축 파일의 목록만 간결하게 나열되어 출력됩니다.

bzegrep -l ‘ERROR’ *.bz2

각 압축 파일마다 검색 조건과 일치하는 라인의 총 개수를 확인하기 위해 -c 옵션을 추가하여 검색합니다.
각 파일별로 ERROR 로그가 매칭된 건수가 숫자로 집계되어 출력됩니다.

bzegrep -c ‘ERROR’ *.bz2

지금까지 우분투에서 bz2 압축을 해제하지 않고도 파일 내부를 빠르게 검색하는 bzegrep 명령어의 사용법을 간단하게 살펴보았습니다.
대용량 bz2 로그나 텍스트 데이터를 분석할 때 bzegrep을 적극 활용하여 디스크 용량과 작업 시간을 효율적으로 절약해보시길 바랍니다.