Linux 의 Grep 명령 사용 방법 에 대한 상세 한 설명

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"이 라 고 쓰 면 됩 니 다.

좋은 웹페이지 즐겨찾기