본문 바로가기

서버/리눅스

grep 사용법

grep 명령어 사용법 정리

grep은 리눅스에서 텍스트 검색을 위한 강력한 도구이다. 로그 파일 분석, 설정 파일 검색, 문자열 필터링 등 다양한 목적에 사용된다. grep은 정규표현식을 기반으로 작동하며, 단독으로도 유용하지만 파이프와 조합하면 더욱 강력한 도구가 된다.


1. 기본 문법

grep [옵션] '패턴' [파일명]

2. 주요 옵션 설명

번호 옵션 설명

{1} -i 대소문자 구분 없이 검색한다.
{2} -v 패턴과 일치하지 않는 행을 출력한다.
{3} -r, -R 하위 디렉토리를 재귀적으로 검색한다.
{4} -n 일치하는 행의 줄 번호를 함께 출력한다.
{5} -l 일치하는 행이 있는 파일 이름만 출력한다.
{6} -c 일치하는 행의 개수만 출력한다.
{7} -o 일치하는 문자열 부분만 출력한다.
{8} -e 여러 패턴을 지정하여 검색할 수 있다.
{9} -A [숫자] 일치하는 행 이후의 N줄을 출력한다.
{10} -B [숫자] 일치하는 행 이전의 N줄을 출력한다.
{11} -C [숫자] 일치하는 행 전후 N줄을 함께 출력한다.

3. 사용 예시

{1} 특정 문자열 검색

grep "error" /var/log/syslog

{2} 대소문자 무시하고 검색

grep -i "warning" messages.log

{3} 특정 단어 제외하고 출력

grep -v "DEBUG" app.log

{4} 현재 디렉토리 및 하위 디렉토리 전체에서 검색

grep -r "token" .

{5} 줄 번호와 함께 검색

grep -n "Exception" stacktrace.log

{6} 일치하는 파일 이름만 출력

grep -l "root" /etc/*

{7} 일치하는 단어만 추출

grep -o "https\?://[a-zA-Z0-9./_-]*" webpage.html

{8} 여러 패턴 동시 검색

grep -e "ERROR" -e "CRITICAL" system.log

{9} 전후 줄까지 함께 출력

grep -C 2 "panic" kernel.log

4. 활용 팁

{1} 다른 명령어와 파이프 연동

dmesg | grep usb

{2} 특정 확장자 파일에서 검색

grep "SECRET_KEY" $(find . -name "*.env")

{3} 확장 정규표현식 사용

grep -E "WARN|ERROR|FAIL" logfile.txt

{4} 리터럴 문자열 검색 (*, . 등의 특수문자 무시)

grep -F "a*b" example.txt

5. 결론

  • grep은 로그 분석, 설정 검토, 보안 점검 등 다양한 작업에 활용되는 필수 명령어이다.
  • -i, -v, -r, -n 등 옵션을 잘 조합하면 원하는 데이터를 빠르게 추출할 수 있다.
  • awk, sed, cut 등과 함께 사용하면 복잡한 텍스트 처리도 자동화할 수 있다.

보다 복잡한 정규표현식이나 스크립트 활용 예시가 필요하다면 추가로 제공할 수 있다.

'서버 > 리눅스' 카테고리의 다른 글

실수로 /usr/lib/python2.* 지웠을때..  (0) 2020.06.29
segfault  (0) 2020.04.21
sed 사용법  (0) 2020.01.19
/bin/sh no such file or directory  (0) 2019.12.16
리눅스 서버 상태 확인  (0) 2019.12.10