아래는 Linux grep 명령어에서 자주 쓰이고 정말 유용한 옵션들을 실전 예제와 함께 정리한 설명입니다.
초보~실무자 수준까지 모두 바로 사용할 수 있게 구성했습니다.
1. 기본 검색 (가장 많이 사용하는 옵션)
-i (대소문자 무시)
grep -i "error" logfile.txt
Error, ERROR, error 모두 매칭.
-v (문자열 제외 / NOT 검색)
grep -v "SUCCESS" app.log
SUCCESS가 아닌 모든 라인 출력.
-w (단어 완전 일치)
grep -w "fail" log.txt
failed, failure는 제외하고 fail 단어만 검색.
2. 출력 제어 옵션
-n (라인 번호 함께 출력)
grep -n "timeout" server.log
-H (파일명 보여줌)
여러 파일 검색 시 자동이지만, 단일 파일에도 파일명 표시하려면:
grep -H "warn" app.log
-o (매칭된 문자열만 출력)
grep -o "http[s]*://[^ ]*" access.log
URL만 추출 가능.
3. 검색 범위 옵션
-r 또는 -R (디렉토리 재귀 검색)
grep -r "keyword" /etc
--exclude, --include (파일 패턴 필터링)
실무에서 필수 옵션
grep -r --include="*.conf" "Listen" /etc
grep -r --exclude="*.log" "ERROR" /var
4. 바이너리 파일 제외 — 필수 옵션
-I (binary 파일 무시)
특히 .jar, .so, .pdf, 이미지 등 포함된 환경에서 매우 중요
grep -rI "jdbc" /APP
또는 최근 grep 버전은 자동으로 감지하지만
-I 강제 설정이 문제 예방에 매우 좋음.
5. 컨텍스트 출력 옵션 (앞/뒤 줄 같이 보기)
로그 분석할 때 가장 많이 사용!
-A (After) — 뒤의 N줄
grep -A 5 "ERROR" app.log
-B (Before) — 앞의 N줄
grep -B 3 "ERROR" app.log
-C (Context) — 앞뒤 N줄
grep -C 2 "ERROR" app.log
6. 정규식 옵션
-E (확장 정규식 사용 — egrep)
grep -E "ERROR|WARN|CRITICAL" app.log
-P (Perl 정규식) — 고급 패턴 필요할 때
일부 환경에서만 활성화됨.
grep -P "\d{4}-\d{2}-\d{2}" log.txt
7. 중복 없는 파일명만 출력
-l (해당 문자열 포함한 파일명만 출력)
grep -rl "password" /home
-L (문자열이 없는 파일만 출력)
grep -rL "SUCCESS" /var/log/app
실무 꿀팁 조합
1) 로그에서 ERROR 전후로 10줄씩 보기
grep -rI -C 10 "ERROR" /APP/logs
2) 특정 확장자만 검색
grep -rI --include="*.properties" "jdbc.url" /APP
3) binary 제외 + 특정 패턴 제외
grep -rI --exclude="*.jar" --exclude-dir=".git" "timeout" .
4) 날짜 형식 로그 필터링
grep -E "2025-11-[0-9]{2}" app.log
|