기타

리눅스 grep으로 text 파일 파싱

Sohyun 2025. 1. 21. 12:40

 

grep 명령어는 텍스트 파일에서 특정 패턴(문자열이나 정규식)을 검색할 때 사용


1. 일반적인 grep 사용법

grep [옵션] "패턴" 파일명

2. 자주 사용하는 옵션

옵션설명
-i 대소문자를 구분하지 않고 검색.
-v 패턴에 일치하지 않는 줄 출력.
-c 패턴과 일치하는 줄의 개수 출력.
-n 패턴이 일치하는 줄 번호와 함께 출력.
-l 패턴이 일치하는 파일의 이름만 출력 (여러 파일 검색 시).
-L 패턴이 일치하지 않는 파일의 이름만 출력.
-r 또는 -R 하위 디렉토리를 재귀적으로 검색.
-w 단어 단위로 패턴 검색 (예: word는 wording에 일치하지 않음).
-x 패턴과 줄 전체가 일치하는 경우만 출력.
-A N 패턴과 일치하는 줄 뒤로 N줄 추가 출력.
-B N 패턴과 일치하는 줄 앞으로 N줄 추가 출력.
-C N 패턴과 일치하는 줄의 앞뒤로 N줄 추가 출력.
--color 검색된 패턴에 색상을 추가 (기본 설정에서는 활성화됨).
-e "패턴" 여러 패턴을 OR 조건으로 검색할 때 사용.
-f 파일명 파일에 저장된 여러 패턴을 읽어 검색.
--exclude=파일 검색에서 특정 파일 제외.
--include=파일 특정 파일만 검색.
--help grep 명령어의 사용법과 옵션을 출력.

 

사용 예시

  1. 대소문자 구분 없이 검색
     
    grep -i "hello" example.txt
  2. 일치하지 않는 줄 출력
     
    grep -v "error" log.txt
  3. 줄 번호와 함께 출력
     
    grep -n "pattern" file.txt
  4. 여러 패턴 검색
     
    grep -e "pattern1" -e "pattern2" file.txt
  5. 하위 디렉토리까지 재귀적으로 검색
     
    grep -r "TODO" .
  6. 앞뒤로 추가 줄 출력
     
    grep -A 2 -B 2 "error" log.txt
  7. 파일 이름만 출력
     
    grep -l "pattern" *.txt

 
내가 자주 쓰는 명령어
 

# 검색결과 출력
cat 파일명 | grep "검색어"

# 검색결과 앞뒤로 한줄씩 출력
cat 파일명 | grep -A 1 -B 1 "검색어"

# 검색어 여러개인 경우
cat 파일명 | grep -A 1 -B 1 "검색어"  | grep -A 1 -B 1 "검색어2" 

# 검색결과를 파일로 남기기
cat 파일명 | grep -A 1 -B 1 "검색어" > newFile.txt