And Brain said,

grep, linux command 옵션 총정리 본문

IT

grep, linux command 옵션 총정리

The Man 2025. 2. 4. 17:13
반응형

 

제가 쓰려고 정리해놓은거라 설명이 부족한 점 양해바랍니다.

 

1. 기본 사용법

 
grep [옵션] "검색할_패턴" 파일명
grep "error" log.txt
 

👉 log.txt에서 "error"라는 단어가 포함된 줄을 출력

 


2. grep의 모든 옵션과 사용법

 1) 출력 형식 관련 옵션

-n 검색 결과와 함께 줄 번호 출력 grep -n "error" log.txt
-c 일치하는 줄 개수만 출력 grep -c "error" log.txt
-o 일치하는 문자열만 출력 grep -o "ERROR-[0-9]*" log.txt
-q 결과를 출력하지 않고 종료 코드만 반환 (0: 일치, 1: 불일치) grep -q "error" log.txt && echo "Found!"
-s 파일이 없거나 읽을 수 없을 때 오류 메시지를 출력하지 않음 grep -s "error" missing_file.txt
-l 일치하는 파일 이름만 출력 grep -l "error" *.log
-L 일치하지 않는 파일 이름만 출력 grep -L "error" *.log
-H 검색된 줄 앞에 항상 파일명 출력 (파일이 하나여도 출력) grep -H "error" log.txt
-h 여러 파일을 검색할 때 파일명을 출력하지 않음 grep -h "error" *.log
--color=auto 검색된 패턴을 색상으로 강조하여 출력 grep --color=auto "error" log.txt

2) 검색 방식 관련 옵션

-i 대소문자 구분 없이 검색 grep -i "error" log.txt
-w 단어 단위로 검색 (is를 찾지만 this는 제외) grep -w "is" file.txt
-x 줄 전체가 패턴과 일치하는 경우만 출력 grep -x "Hello World" file.txt
-v 일치하지 않는 줄 출력 (부정 검색) grep -v "DEBUG" log.txt

 


3) 정규 표현식 관련 옵션

-E 확장 정규 표현식(ERE) 사용 (egrep과 동일) grep -E "error|warning|fail" log.txt
-F 정규 표현식을 해석하지 않고 문자열 그대로 검색 (fgrep과 동일) grep -F "error.*warning" log.txt
-P Perl 정규 표현식(PCRE) 사용 (고급 정규 표현식 지원) grep -P "\d{4}-\d{2}-\d{2}" file.txt

 


4) 파일 및 디렉토리 검색 관련 옵션

-r 하위 디렉토리까지 재귀적으로 검색 grep -r "TODO" ./src
-R 심볼릭 링크도 따라가며 재귀 검색 grep -R "TODO" ./src
--exclude=PATTERN 특정 패턴의 파일 제외 grep -r --exclude="*.log" "error" ./logs
--exclude-dir=DIR 특정 디렉토리 제외 grep -r --exclude-dir="node_modules" "TODO" .
--include=PATTERN 특정 패턴의 파일만 검색 grep -r --include="*.py" "import" .

5) 성능 최적화 관련 옵션

-Z 출력에서 개행을 제거하고 널 문자(\0)로 구분 grep -Z "error" log.txt
--line-buffered 실시간으로 줄 단위 버퍼링하여 출력 (느려질 수 있음) grep --line-buffered "error" log.txt
-A N 검색된 줄 이후 N줄 추가 출력 (After context) grep -A 3 "error" log.txt
-B N 검색된 줄 이전 N줄 추가 출력 (Before context) grep -B 3 "error" log.txt
-C N 검색된 줄 앞뒤 N줄 추가 출력 (Context) grep -C 3 "error" log.txt
-b 검색된 패턴의 바이트 오프셋 출력 grep -b "error" log.txt

 


3. grep 활용 예제

1) 특정 디렉토리에서 파일 검색

grep -r "function" /path/to/code

 

👉 /path/to/code 폴더 내 모든 파일에서 "function"이 포함된 줄 출력

 

2) 특정 확장자의 파일에서 검색

grep -r --include="*.py" "import" .

 

👉 현재 폴더에서 .py 파일만 검색하여 "import" 찾기

 

3) 여러 개의 키워드 중 하나라도 포함된 줄 검색

grep -E "error|fail|warning" log.txt

 

👉 "error", "fail", "warning" 중 하나라도 포함된 줄 출력

 

4) 특정 패턴을 포함하지 않는 줄 검색

 
grep -v "DEBUG" log.txt

 

👉 "DEBUG"가 없는 줄만 출력

 

5) 대소문자 구분 없이 검색

 
grep -i "login" auth.log

 

👉 "login", "LOGIN", "LogIn" 등 대소문자 구분 없이 검색

 

6) 검색된 단어만 출력

grep -o "ERROR-[0-9]*" log.txt

 

👉 "ERROR-12345" 같은 패턴만 출력

 

7) 검색 결과에 줄 번호 표시

grep -n "password" config.txt

 

👉 "password"가 포함된 줄 번호 출력

 

8) 검색된 줄 앞뒤 문맥 표시

grep -C 3 "error" log.txt

 

👉 "error"가 있는 줄을 중심으로 앞뒤 3줄씩 출력

반응형
Comments