기타
리눅스 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 명령어의 사용법과 옵션을 출력. |
사용 예시
- 대소문자 구분 없이 검색
grep -i "hello" example.txt
- 일치하지 않는 줄 출력
grep -v "error" log.txt
- 줄 번호와 함께 출력
grep -n "pattern" file.txt
- 여러 패턴 검색
grep -e "pattern1" -e "pattern2" file.txt
- 하위 디렉토리까지 재귀적으로 검색
grep -r "TODO" .
- 앞뒤로 추가 줄 출력
grep -A 2 -B 2 "error" log.txt
- 파일 이름만 출력
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