리눅스

grep 명령어

변군이글루 2013. 9. 16. 10:41
반응형

grep 명령어

grep은 Linux/Unix 시스템에서 텍스트 파일 내에서 특정 패턴을 검색하는 강력한 도구입니다.

기본 문법

grep [옵션] 패턴 [파일...]
  • 패턴 : 검색하려는 문자열 또는 정규 표현식
  • 파일 : 검색 대상 파일(지정하지 않으면 표준 입력에서 읽음)
  • 옵션 : 검색 동작을 제어하는 플래그

주요 옵션

  • -i : 대소문자를 구분하지 않고 검색
  • -v : 패턴과 일치하지 않는 줄 출력
  • -n : 일치하는 줄에 줄 번호 표시
  • -r : 디렉토리 내 모든 파일을 재귀적으로 검색
  • -l : 패턴이 일치하는 파일 이름만 출력
  • -w : 단어 단위로 정확히 일치하는 경우만 검색
  • -c : 일치하는 줄의 개수 출력
  • -E : 확장 정규 표현식(ERE) 사용
  • -P : Perl 스타일 정규 표현식 사용(일부 시스템 지원)
  • -A n : 일치하는 줄 뒤 n줄 출력
  • -B n : 일치하는 줄 앞 n줄 출력
  • -C n : 일치하는 줄 앞뒤 n줄 출력
728x90

사용 예시

example.txt 파일

cat example.txt
Hello, World!
This is a test file.
HELLO, WORLD!
This is another line.

기본 검색

grep "Hello" example.txt
Hello, World!
HELLO, WORLD!

대소문자 무시

grep -i "hello" example.txt
Hello, World!
HELLO, WORLD!

줄 번호 표시

grep -n "test" example.txt
2:This is a test file.

일치하는 줄 앞뒤 출력

grep -A 1 -B 1 "test" example.txt
Hello, World!
This is a test file.
This is another line.

디렉토리 내 검색

grep -r "error" /var/log
  • 설명: /var/log 디렉토리 내 모든 파일에서 "error" 문자열을 검색.

주석과 빈 줄 제외 (예: 설정 파일)

grep -v '^#|^$' /etc/fluent-bit/fluent-bit.conf
grep -v '^[[:space:]]*#\|^$' /etc/fluent-bit/fluent-bit.conf
  • 설명: #으로 시작하는 주석과 빈 줄을 제외한 설정 항목만 출력.

egrep: 확장 정규 표현식

egrep은 grep -E와 동일하며, 확장 정규 표현식(ERE)을 지원합니다.

egrep "Hello|test" example.txt
grep -E "Hello|test" example.txt
Hello, World!
This is a test file.
HELLO, WORLD!
  • 참고: egrep은 현대 시스템에서 grep -E와 동일하며, 이식성을 위해 grep -E를 권장합니다.

fgrep: 고정 문자열 검색

fgrep은 grep -F와 동일하며, 정규 표현식을 사용하지 않고 문자열을 그대로 검색합니다.

fgrep "test.file" example.txt
  • 설명: test.file을 정규 표현식이 아닌 고정 문자열로 검색.

 

728x90
반응형