English

grep — 리눅스 기본 명령어

Linux / 리눅스 기본 명령어 / grep.html

리눅스 기본 명령어원문등록 2026-10-19T09:00:00+09:00

파일이나 입력에서 특정 패턴을 검색하는 강력한 텍스트 검색 명령어.

기본 정보

명령어 이름grep (global regular expression print)
한 줄 소개파일이나 입력에서 특정 패턴을 검색하는 강력한 텍스트 검색 명령어.
제공GNU grep (모든 Linux 배포판 기본 탑재)
공식 문서https://man7.org/linux/man-pages/man1/grep.1.html
지원 운영체제Linux, macOS, BSD, WSL
설치 여부기본 탑재 (별도 설치 불필요)
분류리눅스 기본 명령어 (태그: 검색, 텍스트, 정규식, 리눅스, 기본)

이 명령어는 무엇인가?

grep은 파일이나 입력에서 특정 문자열이나 정규식 패턴에 해당하는 줄을 검색해 출력하는 명령어입니다. 리눅스에서 가장 자주 사용되는 도구 중 하나이며, 로그 분석·설정 확인·코드 탐색에 폭넓게 활용됩니다.

정규 표현식을 지원해 간단한 문자열 검색부터 복잡한 패턴 매칭까지 처리할 수 있고, -i(대소문자 무시), -v(반전), -r(재귀) 등 유용한 옵션이 풍부합니다.

어떤 문제를 해결하는가?

  • 파일에서 특정 키워드를 검색합니다.
  • 로그에서 에러 메시지를 찾습니다.
  • 설정 파일에서 특정 옵션을 확인합니다.
  • 여러 파일에서 같은 패턴을 일괄 검색합니다.

주요 기능

기본 문자열 검색

파일에서 특정 문자열이 포함된 줄을 출력합니다.

  • 활용 상황: 간단한 키워드 검색이 필요할 때.
  • 얻는 결과: 해당 문자열이 포함된 모든 줄이 표시됩니다.
  • 제한 사항: 대소문자를 구분할 수 있습니다 (옵션으로 변경 가능).

정규식 검색

정규 표현식으로 복잡한 패턴을 검색합니다.

  • 활용 상황: 복잡한 조건으로 텍스트를 검색할 때.
  • 얻는 결과: 정규식에 맞는 줄이 표시됩니다.
  • 제한 사항: 정규식 문법이 복잡할 수 있습니다.

대소문자 무시 (-i)

대소문자를 구분하지 않고 검색합니다.

  • 활용 상황: 대소문자가 혼재된 텍스트를 검색할 때.
  • 얻는 결과: 모든 대소문자 조합이 매칭됩니다.
  • 제한 사항: 일부 로케일에서 예상과 다른 동작을 할 수 있습니다.

재귀 검색 (-r)

디렉토리 아래 모든 파일을 재귀적으로 검색합니다.

  • 활용 상황: 프로젝트 전체에서 키워드를 찾을 때.
  • 얻는 결과: 하위 디렉토리의 모든 파일이 검색됩니다.
  • 제한 사항: 대용량 디렉토리는 느려질 수 있습니다.

설치 및 실행

기본 탑재 확인

모든 Linux 배포판에 기본 포함되어 있습니다.

which grep
grep --version

설치 (경량 환경)

일반적으로 이미 설치되어 있습니다.

sudo apt install grep   # Debian/Ubuntu
sudo dnf install grep    # Fedora

실제 사용 예제

기본 문자열 검색

파일에서 문자열을 검색합니다.

# 파일에서 검색
grep "error" /var/log/syslog

# 대소문자 무시
grep -i "ERROR" /var/log/syslog

# 줄 번호 표시
grep -n "error" /var/log/syslog

# 반전 (error가 없는 줄)
grep -v "error" /var/log/syslog

여러 파일 및 재귀 검색

여러 파일에서 일괄 검색합니다.

# 여러 파일 검색
grep "TODO" *.py

# 디렉토리 재귀 검색
grep -r "import" ./src/

# 파일 유형 지정
grep --include="*.py" -r "def main" .

# 결과 없는 파일 이름도 표시
grep -rl "config" /etc/

정규식 및 파이프 검색

정규식으로 정밀 검색합니다.

# 정규식 검색
grep -E "^#" /etc/nginx/nginx.conf

# IP 주소 패턴
grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" access.log

# 파이프와 함께
cat access.log | grep " 404 " | wc -l

# ps에서 프로세스 검색
ps aux | grep nginx