grep
명령은 텍스트 파일이나 출력에서 특정 문자열을 검색할 때 사용됩니다. 다양한 옵션과 조합으로 강력하고 유연하게 문자열을 찾을 수 있습니다. 아래에 주요 사용법과 옵션들을 소개합니다.
1. 기본 사용법
특정 문자열 검색
grep "검색할_문자열" 파일명
- 예:
file.txt
에서error
를 검색grep "error" file.txt
2. 주요 옵션
(1) 대소문자 무시 (-i
)
grep -i "검색할_문자열" 파일명
- 대소문자를 구분하지 않고 검색.
- 예:
Error
,ERROR
,error
모두 검색.
(2) 라인 번호 출력 (-n
)
grep -n "검색할_문자열" 파일명
- 검색된 문자열이 포함된 라인의 번호를 출력.
- 예:
출력:grep -n "error" file.txt
12:error found 35:critical error
(3) 여러 파일 검색 (-H
)
grep -H "검색할_문자열" 파일1 파일2
- 검색 결과에 파일 이름 표시.
- 예:
출력:grep -H "error" file1.txt file2.txt
file1.txt:line with error file2.txt:another error here
(4) 하위 디렉토리까지 검색 (-r
또는 -R
)
grep -r "검색할_문자열" 디렉토리
- 지정된 디렉토리 내부의 모든 파일에서 검색.
- 예: 현재 디렉토리와 하위 디렉토리에서
TODO
검색grep -r "TODO" .
(5) 정규 표현식 사용 (-E
)
grep -E "패턴1|패턴2" 파일명
- 여러 패턴을 검색하거나 복잡한 정규 표현식 사용.
- 예:
error
또는warning
검색grep -E "error|warning" file.txt
(6) 문자열이 포함되지 않은 줄 찾기 (-v
)
grep -v "검색할_문자열" 파일명
- 검색 문자열이 포함되지 않은 줄을 출력.
- 예:
error
가 없는 줄 찾기grep -v "error" file.txt
(7) 단어 단위로 검색 (-w
)
grep -w "검색할_단어" 파일명
- 정확히 해당 단어가 포함된 줄만 출력.
- 예:
error
가 단어로만 존재하는 경우 검색.grep -w "error" file.txt
(8) 검색 결과 색상 강조 (--color
)
grep --color=always "검색할_문자열" 파일명
- 검색된 문자열을 색상으로 강조(기본적으로 활성화).
3. 검색 결과를 파이프로 전달
명령어 출력에서 검색
command | grep "검색할_문자열"
- 예:
dmesg
명령 출력에서USB
관련 메시지 검색dmesg | grep "USB"
4. 특정 패턴 검색
(1) 파일에서 시작하는 줄 검색 (^
)
grep "^패턴" 파일명
- 예:
error
로 시작하는 줄 찾기grep "^error" file.txt
(2) 파일에서 끝나는 줄 검색 ($
)
grep "패턴$" 파일명
- 예:
end
로 끝나는 줄 찾기grep "end$" file.txt
(3) 특정 문자열 포함 파일만 찾기 (-l
)
grep -l "검색할_문자열" 파일1 파일2
- 예: 특정 디렉토리에서
error
가 포함된 파일 찾기grep -l "error" *.txt
(4) 특정 파일 제외 (--exclude
)
grep --exclude="*.log" "검색할_문자열" 디렉토리
- 예:
.log
파일 제외하고 검색.
5. 실용적인 조합
(1) 특정 파일 형식에서 검색
grep "검색할_문자열" *.txt
(2) 하위 디렉토리에서 특정 파일 형식 검색
grep -r --include="*.log" "검색할_문자열" .
(3) 특정 조건에서 줄 번호와 함께 검색
grep -n -w "검색할_문자열" 파일명
6. 결과 출력 제한
검색 결과 상위 몇 줄만 출력 (-m
):
grep -m 5 "검색할_문자열" 파일명
- 처음 5개의 결과만 표시.
7. 정리
grep
은 단순한 문자열 검색부터 복잡한 패턴 매칭까지 다양한 기능을 제공.- 주요 옵션:
-i
(대소문자 무시),-n
(줄 번호),-v
(포함하지 않는 줄),-r
(재귀 검색),-E
(정규 표현식). - 결과를 파이프로 다른 명령어와 연결하거나, 특정 파일/디렉토리에만 적용할 수 있음.
필요한 검색 방식에 따라 위 옵션들을 조합하면 효과적으로 텍스트 검색을 수행할 수 있습니다.
'IT > 리눅스' 카테고리의 다른 글
split - 용량 큰 로그 파일, 텍스트 파일 나누기 (0) | 2025.01.22 |
---|---|
tcl - regsub 문자열 치환 함수 (0) | 2025.01.13 |
쉡 스크립트 if []; then 에 등장하는 세미콜론의 의미? (0) | 2025.01.09 |
쉡 스크립트에서 환경변수 값 비교시 null, empty 체크를 위한 팁 (0) | 2025.01.09 |
특정 이름의 폴더만 빼고 복사 하고 싶을 때 - rsync (1) | 2024.12.05 |