본문 바로가기
혼공

[Bash] grep 명령어

by letsgomin 2026. 4. 23.

때때로 개발을 하다보면 터미널에서 명령어를 통해 검색하는게 더 편할때가 있다.

그중에 grep명령어를 가장 많이 사용하는데, 옵션에 대해 전부 알지 못한다는 FOMO가 와서 여기에 정리해서 기록한다.

grep이란?

grep은 Global Regular Expression Print의 약자로, 파일 내에서 특정 문자열이나 패턴을 검색할 때 사용하는 Bash Shell 명령어다.

grep의 옵션

옵션 설명 비고
-i Ignore Case 대소문자를 구분하지 않고 검색
-v Invert Match 패턴과 일치하지 않는 라인만 출력 (제외 검색)
-n Line Number 결과 앞에 파일 내 행 번호를 표시
-r / -R Recursive 하위 디렉토리를 포함한 모든 파일에서 검색
-l Files with Matches 문자열이 포함된 파일의 이름만 출력
-c Count 패턴이 일치하는 행의 개수만 출력
-w Word 패턴이 독립된 단어로 일치하는 경우만 검색
-A [숫자] After 일치하는 행 뒤의 [숫자]만큼의 행을 추가로 표시
-B [숫자] Before 일치하는 행 앞의 [숫자]만큼의 행을 추가로 표시
-C [숫자] Context 일치하는 행 전후로 [숫자]만큼의 행을 추가로 표시

활용 예시

대소문자 무시하고 검색 (-i)

: 주로 파일 안에서 'error', 'Error', 'ERROR' 등 대소문자 관계없이 찾고 싶을 때 사용

grep -i "error" system.log

특정 단어 제외하고 보기 (-v)

: 로그 파일에서 'DEBUG' 메시지를 제외한 나머지 중요한 정보만 보고 싶을 때 사용

grep -v "DEBUG" server.log

행 번호와 함께 출력 (-n)

: 검색 결과가 파일의 몇 번째 줄에 있는지 확인하여 코드를 수정할 때 사용

grep -n "function_name" main.py

디렉토리 전체에서 검색 (-r)

현재 디렉토리 및 모든 하위 폴더에 있는 파일들 중에서 특정 문자열을 찾을 때 사용

grep -r "TODO" ./src

정확히 일치하는 단어만 검색 (-w)

예를 들어, apple을 검색할 때 pineapple은 제외하고 오직 apple이라는 단어만 찾고 싶을 때 사용

grep -w "apple" fruits.txt

검색 결과의 전후 맥락 보기 (-A, -B, -C)

에러 메시지가 발생한 시점의 앞뒤 상황을 파악할 때 필수적으로 사용

# 에러 발생 행 전후 3줄씩 같이 보기
grep -C 3 "NullPointerException" error.log

파이프 | 활용

:grep은 단독으로도 쓰이지만, 다른 명령어의 출력 결과를 필터링할 때 가장 활용도가 높다.

실행중인 특정 프로세스 찾기

ps -ef | grep "python"

파일 목록 중 특정 확장자나 이름 필터링

ls -al | grep ".txt"

 

이렇게 grep을 다른 명령어와 옵션을 잘 섞어서 사용하면, 수많은 파일 속에서 원하는 정보를 단숨에 찾아낼 수 있다.

 

내게 어려움은 성장통일 뿐이다

'혼공' 카테고리의 다른 글

Git Commit 잔디 유지하면서 Repository 정리  (0) 2026.05.03
예외처리  (0) 2026.04.27
[Bash] 기본 명령어 모음  (0) 2026.04.23
[Java] while문 vs do while문  (0) 2026.04.23
[Bash] rm 명령어  (0) 2026.04.23