1. grep 프로필 grep (global search regular expression(RE) and print out the line,정규 표현 식 을 전면적으로 검색 하고 줄 을 인쇄 합 니 다)는 강력 한 텍스트 검색 도구 입 니 다.정규 표현 식 으로 텍스트 를 검색 하고 일치 하 는 줄 을 인쇄 할 수 있 습 니 다.유 닉 스 의 grep 가족 은 grep 를 포함 합 니 다. egrep 와 fgrep.egrep 와 fgrep 의 명령 은 grep 와 아주 작 게 다르다.egrep 는 grep 의 확장 으로 더 많은 re 원 문 자 를 지원 합 니 다. fgrep fixed grep 또는 fast grep,모든 자 모 를 단어 로 간주 합 니 다.즉,정규 표현 식 의 메타 문 자 는 자신의 글자 의 의 미 를 나타 내 고 더 이상 특별 하지 않 습 니 다.linux GNU 버 전의 grep 를 사용 합 니 다.이 기능 은 더욱 강해 서-G,-E,-F 명령 행 옵션 을 통 해 egrep 와 fgrep 기능 을 사용 할 수 있 습 니 다. grep 의 작업 방식 은 이 렇 습 니 다.하나 이상 의 파일 에서 문자열 템 플 릿 을 검색 합 니 다.템 플 릿 에 빈 칸 이 포함 되 어 있 으 면 인용 되 어야 합 니 다.템 플 릿 뒤의 모든 문자열 은 파일 이름 으로 간주 되 어야 합 니 다.검색 결과 가 화면 으로 보 내 져 원본 파일 내용 에 영향 을 주지 않 습 니 다. grep 는 셸 스 크 립 트 에 사용 할 수 있 습 니 다.grep 는 상태 값 을 되 돌려 검색 상 태 를 설명 하기 때 문 입 니 다.템 플 릿 검색 에 성공 하면 0 으로 되 돌아 갑 니 다.검색 에 성공 하지 못 하면 1 로 되 돌아 갑 니 다.검색 한 파일 이 존재 하지 않 으 면 2 로 되 돌아 갑 니 다.우 리 는 이 반환 값 을 이용 하여 자동 화 된 텍스트 처리 작업 을 할 수 있다. 2. grep 정규 표현 식 메타 문자 집합(기본 집합) ^ 닻 줄 의 시작 예 를 들 어'^grep'은 grep 로 시작 하 는 모든 줄 과 일치 합 니 다. $ 닻 의 끝 예 를 들 어'grep$'는 grep 로 끝 나 는 모든 줄 과 일치 합 니 다. 줄 바 꿈 문자 가 아 닌 문자 와 일치 합 니 다. 예 를 들 어'gr.p'는 gr 과 일치 한 후에 임의의 문 자 를 연결 하고 그 다음 에 p 입 니 다. * 0 개 이상 의 이전 문자 와 일치 합 니 다. 예 를 들 어'*grep'은 모든 빈 칸 과 일치 한 후 grep 의 줄 을 바짝 따라 갑 니 다. .*임 의 문 자 를 함께 사용 합 니 다. [] '[Gg]rep'와 같은 지정 한 범위 의 문자 가 Grep 과 grep 와 일치 합 니 다. [^] 지정 한 범위 에 있 지 않 은 문자 와 일치 합 니 다.예 를 들 어'[^A-FH-Z]rep'는 A-R 과 T-Z 를 포함 하지 않 는 알파벳 으로 시작 하여 rep 의 줄 을 따라 갑 니 다. \(..\) '\(love\)'와 같은 일치 하 는 문 자 를 표시 합 니 다.love 는 1 로 표 시 됩 니 다. \< 닻 단어의 시작,예 를 들 어'\\> 닻 단어의 끝,예 를 들 어'grep\>'는 grep 로 끝 나 는 단 어 를 포함 하 는 줄 과 일치 합 니 다. x\{m\} 반복 문자 x,m 회,예 를 들 어'0\{5\}'은 5 개의 o 를 포함 하 는 줄 과 일치 합 니 다. x\{m,\} 반복 문자 x,최소 m 회,예 를 들 어'o\{5,\}'은 최소 5 개의 o 줄 과 일치 합 니 다. x\{m,n\} 반복 문자 x,최소 m 회,n 회 이상 이 아 닙 니 다.예 를 들 어'o\{5,10\}'은 5-10 개의 o 줄 과 일치 합 니 다. \w 문자 와 숫자 문자,즉[A-Za-z0-9]와 일치 합 니 다.예 를 들 어'G\w*p'는 G 뒤 를 0 개 이상 의 문자 나 숫자 문자 로 일치 하고 그 다음 에 p 입 니 다. \W \w 의 반전 형식 은 하나 이상 의 단어 가 아 닌 문자 와 일치 합 니 다.예 를 들 어 점 마침표 등 입 니 다. \b 단어 잠 금 문자: '\bgrepb\\'는 grep 와 만 일치 합 니 다. 3. egrep 과 grep -E 의 메타 문자 확장 집합 + 이전 문자 하나 이상 과 일치 합 니 다.예 를 들 어'[a-z]+able'은 하나 이상 의 소문 자 뒤에 able 과 일치 하 는 문자열 입 니 다.예 를 들 어 loveable,enable,disable 등 입 니 다. ? 0 개 이상 의 이전 문자 와 일치 합 니 다.예 를 들 어'gr?p'는 gr 과 일치 한 후에 문자 가 하나 또는 없 거나 그 다음 에 p 의 줄 입 니 다. a|b|c a 또는 b 또는 c 와 일치 합 니 다.예 를 들 어 grep|sed 는 grep 또는 sed 와 일치 합 니 다. () 그룹 기호,예 를 들 어 love(able|rs)ov+는 loveable 또는 lovers 와 일치 하고 하나 이상 의 ov 와 일치 합 니 다. x{m},x{m,},x{m,n} 작용 은 x\\{m\},x\{m,\},x\{m,n\}와 같다 4. POSIX 문자 클래스 다른 나라 의 문자 인 코딩 에서 1 까지 유지 하기 위해 서 POSIX(The Portable Operating System Interface)는[:alnum:]와 같은 특수 한 문자 클래스 를 추 가 했 습 니 다.A-Za-z0-9 의 또 다른 쓰기 입 니 다.[]번 에 넣 어야 정규 표현 식 이 될 수 있 습 니 다.예 를 들 어[A-] Za-z0-9]또는[: alnum:]]。Liux 의 grep 는 fgrep 를 제외 하고 POSIX 의 문자 류 를 지원 합 니 다. [:alnum:] 문자 숫자 문자 [:alpha:] 문자 [:digit:] 숫자 문자 [:graph:] 비 어 있 는 문자(비 어 있 는 칸,제어 문자) [:lower:] 소문 자 [:cntrl:] 제어 문자 [:print:] 비 어 있 는 문자(빈 칸 포함) [:punct:] 문장 부호 [:space:] 모든 공백 문자(새 줄,빈 칸,탭 문자) [:upper:] 대문자 [:xdigit:] 16 진수(0-9,a-f,A-F) 5. Grep 명령 옵션 -? 일치 하 는 줄 을 상하 로 동시에 표시 합 니까?grep -2 pattern filename 은 일치 하 는 줄 의 상하 두 줄 을 동시에 표시 합 니 다. -b,--byte-offset 줄 앞 에 있 는 블록 번 호 를 인쇄 합 니 다. -c,--count 일치 하 는 줄 만 인쇄 하고 일치 하 는 내용 은 표시 되 지 않 습 니 다. -f File,--file=File 파일 에서 템 플 릿 을 추출 합 니 다.빈 파일 에는 0 개의 템 플 릿 이 포함 되 어 있어 아무것도 일치 하지 않 습 니 다. -h,--no-filename 여러 파일 을 검색 할 때 일치 하 는 파일 이름 접 두 사 를 표시 하지 않 습 니 다. -i,--ignore-case 대소 문자 차 이 를 무시 합 니 다. -q,--quiet 디 스 플레이 를 취소 하고 종료 상태 만 되 돌려 줍 니 다.0 은 일치 하 는 줄 을 찾 았 음 을 나타 낸다. -l,--files-with-matches 템 플 릿 과 일치 하 는 파일 목록 을 인쇄 합 니 다. -L,--files-without-match 템 플 릿 과 일치 하지 않 는 파일 목록 을 인쇄 합 니 다. -n,--line-number 일치 하 는 줄 앞 에 줄 번 호 를 인쇄 합 니 다. -s,--silent 존재 하지 않 거나 파일 을 읽 을 수 없 는 오류 정 보 를 표시 하지 않 습 니 다. -v,--revert-match 역 검색,일치 하지 않 는 줄 만 표시 합 니 다. -w,--word-regexp \<와\>에 인용 되면 표현 식 을 단어 검색 으로 합 니 다. -V,--version 소프트웨어 버 전 정 보 를 표시 합 니 다. 6. 실례 grep 라 는 도 구 를 잘 사용 하려 면 정규 표현 식 을 잘 써 야 하기 때문에 grep 의 모든 기능 에 대해 인 스 턴 스 설명 을 하지 않 고 몇 가지 예 만 열거 하여 정규 표현 식 의 쓰기 방법 을 설명 합 니 다. $ ls -l | grep '^a' 파이프 필터 ls -l 출력의 내용 은 a 로 시작 하 는 줄 만 표시 합 니 다. $ grep 'test' d* d 로 시작 하 는 모든 파일 에 test 를 포함 하 는 줄 을 표시 합 니 다. $ grep 'test' aa bb cc aa,bb,cc 파일 에 test 와 일치 하 는 줄 을 표시 합 니 다. $ grep '[a-z]\{5\}' aa 모든 문자열 에 최소 5 개의 연속 소문 자 를 포함 하 는 문자열 의 줄 을 표시 합 니 다. $ grep 'w\(es\)t.*\1' aa west 가 일치 하면 es 는 메모리 에 저장 되 고 1 로 표시 되 며 임의의 문자(.*)를 검색 합 니 다.이 문자 들 뒤에 다른 es(\1)가 붙 어 있 습 니 다.찾 으 면 이 줄 을 표시 합 니 다.하면,만약,만약... -E,"\"호 를 전의 하지 않 고"w(es)t.*\\1"이 라 고 쓰 면 됩 니 다.