grep
- 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어
- 단순 문자열 매칭뿐만 아니라 정규 표현식(Regular Expression)에 의한 패턴 매칭(Pattern Matching) 방식도 사용 가능
정규표현식
메타 문자 (Meta Character) | 설명 |
. | 정확히 1개의 문자와 매치 |
* | 앞 문자가 0회 이상 매치 |
{n} | 앞 문자가 정확히 n회 매치 |
{n,m} | 앞 문자가 n회 이상 m회 이하 매치 |
[ ] | 대괄호에 포함된 문자 중 한개와 매치 |
[^ ] | 대괄호 안에서 ^뒤에 있는 문자들을 제외 |
[ - ] | 대괄호 안 문자 범위에 있는 문자들 매치 |
() | 표현식을 그룹화 |
^ | 문자열 라인의 처음 |
$ | 문자열 라인의 마지막 |
? | 앞 문자가 0 또는 1회 매치 (확장 정규 표현식) |
+ | 앞 문자가 1회 이상 매치 (확장 정규 표현식) |
| | 표현식 논리 OR (확장 정규 표현식) |
grep 명령어 옵션
OPTION | 설명 |
-E | PATTERN을 확장 정규 표현식(Extended RegEx)으로 해석 |
-F | PATTERN을 정규 표현식(RegEx)이 아닌 일반 문자열로 해석 |
-G | PATTERN을 기본 정규 표현식(Basic RegEx)으로 해석 |
-P | PATTERN을 Perl 정규 표현식(Perl RegEx)으로 해석 |
-e | 매칭을 위한 PATTERN 전달 |
-f | 파일에 기록된 내용을 PATTERN으로 사용 |
-i | 대/소문자 무시 |
-v | 매칭되는 PATTERN이 존재하지 않는 라인 선택 |
-w | 단어(word) 단위로 매칭 |
-x | 라인(line) 단위로 매칭 |
-z | 라인을 newline(\n)이 아닌 NULL(\0)로 구분 |
-m | 최대 검색 결과 갯수 제한 |
-b | 패턴이 매치된 각 라인(-o 사용 시 문자열)의 바이트 옵셋 출력 |
-n | 검색 결과 출력 라인 앞에 라인 번호 출력 |
-H | 검색 결과 출력 라인 앞에 파일 이름 표시 |
-h | 검색 결과 출력 시, 파일 이름 무시 |
-o | 매치되는 문자열만 표시 |
-q | 검색 결과 출력하지 않음 |
-a | 바이너리 파일을 텍스트 파일처럼 처리 |
-I | 바이너리 파일은 검사하지 않음 |
-d | 디렉토리 처리 방식 지정. (read, recurse, skip) |
-D | 장치 파일 처리 방식 지정. (read, skip) |
-r | 하위 디렉토리 탐색 |
-R | 심볼릭 링크를 따라가며 모든 하위 디렉토리 탐색 |
-L | PATTERN이 존재하지 않는 파일 이름만 표시 |
-l | 패턴이 존재하는 파일 이름만 표시 |
-c | 파일 당 패턴이 일치하는 라인의 갯수 출력 |
grep 사용 예시
$ grep [OPTION] [PATTERN] [FILE]
#대상 파일에서 문자열 검색
$ grep "STR" [FILE]
# 현재 디렉토리 모든 파일에서 문자열 검색
$ grep "STR" *
# 특정 확장자를 가진 모든 파일에서 문자열 검색
$ grep "STR" *.ext
# A로 시작하여 B로 끝나는 패턴 찾기
$ grep "A.*B" *
# 0-9 사이 숫자만 변경되는 패턴 찾기
$ grep "STR[0-9]" *
# 문자열 패턴 전체를 정규 표현식 메타 문자가 아닌 일반 문자로 검색하기
$ grep -F "*[]?..." [FILE]
# 정규 표현식 메타 문자를 일반 문자로 검색하기
$ grep "\*" [FILE]
# 문자열 라인 처음 시작 패턴 검색하기
$ grep "^STR" [FILE]
# 문자열 라인 마지막 종료 패턴 검색하기
$ grep "$STR" [FILE]
'프로그래밍 > Linux' 카테고리의 다른 글
mDNS / DNS-SD 란? Avahi란? (0) | 2024.08.02 |
---|---|
[Linux] 파일 이름, 내용 일괄변경 (0) | 2024.04.03 |
[Linux] sed(Stream Editor) 정리 (0) | 2024.03.26 |
[Linux] 권한 설정 정리 (chown, chmod, chgrp) (0) | 2024.03.20 |