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 |