리눅스
[draft] grep 명령어
SangChul Dot Kr Blog
2025. 10. 1. 12:19
grep 명령어
grep이란?
grep(Global Regular Expression Print)은 텍스트 파일에서 특정 패턴을 검색하는 강력한 리눅스/유닉스 명령어입니다. 파일 전체를 검색하여 정규표현식에 매칭되는 모든 행을 출력하는 것이 기본 기능입니다.
grep 패밀리 소개
grep : 기본 정규표현식 지원
egrep : 확장 정규표현식 지원 (더 많은 메타문자)
fgrep : 고정 문자열 검색 (정규표현식 미지원, 가장 빠름)
사용 예제
기본 검색
"NW"가 포함된 행 검색
grep NW datafile
d로 시작하는 모든 파일에서 "NW" 검색
grep NW d*
n으로 시작하는 행
grep '^n' datafile
4로 끝나는 행
grep '4$' datafile
정규표현식 활용
숫자 5 + 마침표 + 임의의 문자 패턴
grep '5.' datafile
w나 e로 시작하는 행
grep '^[we]' datafile
숫자가 아닌 문자가 하나라도 있는 행
grep '[^0-9]' datafile
대문자 2개 + 공백 + 대문자 1개 패턴
grep '[A-Z][A-Z] [A-Z]' datafile
단어 단위 검색
north로 시작하는 단어
grep '\<north' datafile
정확히 north 단어만 (단어 경계)
grep '\<north\>' datafile
고급 옵션
행 번호 표시
grep -n '^south' datafile
대소문자 구분 없이 검색
grep -i 'pat' datafile
패턴이 없는 행만 출력 (제외 필터)
grep -v 'Suan Chin' datafile
패턴이 있는 파일명만 출력
grep -l 'SE' *
완전한 단어만 검색
grep -w 'north' datafile
환경변수 값 검색
grep -i "$LOGNAME" datafile
특정 내용 제거하기
- Suan Chin이 없는 행만 추출해서 새 파일 생성
grep -v 'Suan Chin' datafile > temp_file
mv temp_file datafile
로그 파일에서 에러 찾기
grep -i 'error' application.log
소스 코드에서 함수 사용處 찾기
grep -n 'function_name' *.js
TODO 주석만 추출
grep -r 'TODO' src/
특정 프로세스 확인
ps aux | grep 'nginx'
설정 파일에서 주석 제외하고 보기
grep -v '^#' /etc/config/file
grep -E -v '^#|^$' /etc/fluent-bit/fluent-bit.conf
grep -E -v '^[[:space:]]*#|^$' /etc/fluent-bit/fluent-bit.conf
백업 파일 제외하고 검색
grep -r 'pattern' . --exclude='*.bak'
egrep: 확장 정규표현식
NW 또는 EA가 포함된 행
egrep 'NW|EA' datafile
숫자 3이 한 번 이상 반복
egrep '3+' datafile
숫자 2 + (마침표 0 또는 1회) + 숫자
egrep '2.?[0-9]' datafile
no가 한 번 이상 연속
egrep '(no)+' datafile
S 다음에 h 또는 u
egrep 'S(h|u)' datafile
설정 파일에서 주석 제외하고 보기
egrep -v '^#|^$' /etc/fluent-bit/fluent-bit.conf
egrep -v '^[[:space:]]*#|^$' /etc/fluent-bit/fluent-bit.conf
fgrep: 빠르고 단순한 검색
모든 문자를 일반 문자로 처리 (정규표현식 무시)
fgrep '[A-Z]****[0-9]..$5.00' file