본문 바로가기
리눅스의 모든 것

리눅스 grep 사용법 완벽 가이드 – 옵션, 예제, 실무 활용까지

by 운따돈 2025. 8. 14.

리눅스를 조금이라도 써본 분이라면 grep이라는 명령어를 한 번쯤 들어보셨을 거예요.
grep은 파일이나 출력 결과에서 특정 문자열(패턴)을 찾아주는 강력한 검색 도구예요.


예를 들어, 서버 로그에서 에러 메시지를 찾거나, 수천 개의 텍스트 파일 중 특정 키워드를 포함한 줄만 뽑아낼 때 아주 유용합니다.
단순히 검색 기능뿐 아니라 정규표현식, 파이프라인 명령어와 함께 사용하면 데이터 분석, 로그 추적, 보안 점검 등 다양한 분야에서 필수 도구로 활용됩니다.


기본 사용법

grep [옵션] '검색할_문자열' 파일명

예시
grep "error" server.log
→ server.log 파일에서 error라는 단어가 포함된 모든 줄을 출력.

옵션을 지정하지 않으면 대소문자를 구분하고, 단순히 해당 문자열이 포함된 줄을 모두 보여줍니다.


자주 쓰는 옵션 정리

  • -i : 대소문자 구분 없이 검색
  • -n : 검색 결과와 함께 줄 번호 출력
  • -v : 패턴과 일치하지 않는 줄만 출력 (반전 검색)
  • -r : 하위 디렉토리까지 재귀적으로 검색
  • -l : 해당 문자열이 포함된 파일 이름만 표시
  • -c : 일치하는 줄의 개수만 출력
  • -E : 정규표현식(extended regex) 사용 가능
  • --color=auto : 일치하는 부분을 색상으로 강조 표시

실무 예제

  1. 로그에서 "error" 찾기 (대소문자 무시)
    grep -i "error" /var/log/syslog
  2. 특정 단어 제외하고 검색
    grep -v "DEBUG" app.log
  3. 여러 키워드 동시에 검색
    grep -E "error|fail|fatal" app.log
  4. 디렉토리 전체 검색
    grep -rn "password" /etc
  5. 파일 이름만 출력
    grep -rl "DB_CONNECTION" .

파이프와 함께 사용하기

grep은 다른 명령어와 결합해서 필터링할 때 특히 강력합니다.

  • 실행 중인 프로세스에서 nginx 검색
    ps aux | grep nginx
  • 80번 포트가 열려 있는지 확인
    netstat -tuln | grep 80
  • find와 결합해 로그 파일 전체에서 검색
    find . -name "*.log" | xargs grep "error"

정규표현식 활용

grep의 진짜 힘은 정규표현식과 함께 쓸 때 발휘됩니다.

  • 3자리 숫자만 검색
    grep -E "^[0-9]{3}$" data.txt
  • 대문자로 시작하는 줄 검색
    grep -E "^[A-Z].*" names.txt
  • 이메일 주소 패턴 검색
    grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-z]{2,}" users.txt

실무 꿀팁

  1. --color=auto 옵션을 사용하면 검색어가 색상으로 표시되어 가독성이 좋아집니다.
  2. -r 옵션으로 디렉토리 전체를 검색할 수 있어 대규모 프로젝트에서도 빠른 키워드 추출이 가능합니다.
  3. find 명령어와 함께 쓰면 파일 검색과 내용 검색을 동시에 할 수 있어 효율적입니다.
  4. 로그 분석 시 grep -i error | grep -v debug처럼 파이프를 연속으로 사용하면 불필요한 결과를 걸러낼 수 있습니다.

마무리

grep은 리눅스에서 데이터를 찾고 필터링하는 데 있어 거의 표준처럼 쓰이는 명령어예요.
옵션과 정규표현식을 적절히 조합하면 수십만 줄의 로그도 단 몇 초 만에 원하는 정보만 추출할 수 있습니다.
서버 운영, 개발, 데이터 분석을 한다면 꼭 익혀두세요.
특히, 파이프라인과 결합하는 방법을 알면 grep의 진가를 제대로 느낄 수 있을 거예요.