grep
은 파일이나 입력 스트림에서 특정 문자열 패턴을 찾아 출력하는 명령어입니다. 로그 분석, 설정 파일 검색, 코드 확인 등 리눅스 환경에서 매우 자주 활용됩니다.
2. 기본 문법
grep [옵션] [패턴] [파일]
패턴은 문자열이나 정규표현식을 사용할 수 있으며, 파일 대신 다른 명령어의 출력과도 함께 사용할 수 있습니다.
3. 주요 옵션 정리
-i
: 대소문자 구분하지 않고 검색-v
: 지정한 패턴과 일치하지 않는 라인 출력-n
: 라인 번호 출력-r
: 하위 디렉토리까지 재귀적으로 검색-w
: 전체 단어로 검색-l
: 파일 이름만 출력-c
: 검색된 라인 수 출력-e
: 정규표현식으로 검색-f
: 파일에서 검색 패턴을 불러와서 검색-o
: 일치하는 문자열만 출력-q
: 출력하지 않고 결과만 반환
4. 자주 쓰는 예제
# 대소문자 구분 없이 "test" 검색
grep -i "test" file.txt
# "tewst"이 포함되지 않은 라인 출력
grep -v "test" file.txt
# 라인 번호와 함께 "test" 검색
grep -n "test" file.txt
# 하위 디렉토리 전체에서 검색
grep -r "test" /path/to/directory/
# 전체 단어로 "test" 검색
grep -w "test" file.txt
# "test"이 포함된 파일 이름만 출력
grep -l "test" /path/to/directory/*
# 검색된 라인 수 출력
grep -c "test" file.txt

5. 정규표현식 활용
# "test" 또는 "banana"가 포함된 라인 검색
grep -e "test|banana" file.txt
# 패턴 목록 파일을 이용한 검색
grep -f patterns.txt file.txt
# 일치하는 문자열만 출력
grep -o "test" file.txt
# 출력은 생략하고 결과만 반환 (스크립트 활용 시 유용)
grep -q "test" file.txt
팁: 정규표현식을 활용하면 더 정교한 검색이 가능합니다. 예를 들어 grep -E "[0-9]{3}-[0-9]{4}" file.txt
는 전화번호 패턴을 찾는 데 쓸 수 있습니다.
grep
은 단순한 문자열 검색을 넘어 정규표현식과 결합해 강력한 분석 도구로 활용할 수 있습니다. 리눅스를 다루는 모든 사용자에게 꼭 필요한 기본 명령어이므로 자주 연습해 보시길 추천합니다.