정규 표현 식 옵션 분석

리 눅 스 시스템 을 사용 할 때 우 리 는 항상 일부 텍스트 를 처리 해 야 하지만, 어떤 때 는 텍스트 가 매우 길 기 때문에 우 리 는 우리 가 필요 로 하 는 텍스트 를 찾 아야 한다.grep 명령 은 이 기능 을 실현 할 수 있 습 니 다.
grep 시 리 즈 는 세 가지 로 나 뉘 는데 그것 이 바로 grep, egrep, fgrep 이다. 그 중에서 egrep 와 fgrep 는 grep 의 파생 판 이 라 고 할 수 있다. grep 에 특수 명령 을 더 하면 egrep 와 fgrep 가 된다.이 세 가지 명령 은 텍스트 검색 도구 에 속 하 며 주어진 텍스트 를 기반 으로 모호 한 검색 을 합 니 다.
grep 의 전체 이름 은 Global search REgular expression and Print out the line 입 니 다. 중국어 로 정규 표현 식 을 이용 하여 전역 검색 을 하고 일치 하 는 줄 을 표시 한 다 는 뜻 입 니 다.이 명령 은 기본적으로 탐욕 모드 에서 작 동 합 니 다. 즉, 일치 할 수 있 는 모든 내용 과 일치 하고 일치 하 는 문자 가 줄 에 있 는 모든 내용 을 표시 합 니 다.grep [OPTIONS] PATTERN [FILE...] 형식 입 니 다.
OPTIONS 는 grep 의 옵션 입 니 다. 자주 사용 하 는 옵션 은 다음 과 같 습 니 다.
- i, -- ignore: 텍스트 문자 의 대소 문 자 를 무시 합 니 다.
 이 기능 은 대소 문 자 를 구분 하고 싶 지 않 을 때 사용 할 수 있 습 니 다. 예 를 들 어 모든 대소 문자 s 자모 와 일치 합 니 다.
        ~]$ echo sadSdaaea | grep -i "s"

    일치 하 는 결과: sadSdaaea
- v: 역방향 일치;최종 결 과 는 PATTERN 이 일치 하지 않 는 줄 입 니 다.
         :                “a”
             ~]$ cat a        
            sd
            zx
            qw
                    
           ~]$ grep -v "s" a

  일치 하 는 결과:
        zx
        qw
- c -- count: PATTERN 조건 과 일치 하 는 줄 수;
              :            “a”  ,      :
                ~]$ grep -c "s" a

   일치 하 는 결과:
      1
- o -- only matching: 탐욕 모드 를 닫 고 일치 하 는 내용 만 표시 합 니 다.
    일치 할 때 이 옵션 을 추가 하면 일치 하 는 결 과 를 표시 할 때 일치 하 는 내용 만 표 시 됩 니 다.
        예 를 들 면:
                    grep -o "s" a

   일치 하 는 결과: 
      s
    이 결과 에 일치 하 는 줄 은 sd 일 것 입 니 다. 그러나 - o 옵션 을 추가 하여 "s" 자모 만 표시 합 니 다.
- q -- quiet: 조용 한 모드 로 일치 하 는 결 과 를 출력 하지 않 습 니 다.
--color=auto:
- E: 확 장 된 정규 표현 식, grep - E 는 egrep 에 해당 합 니 다.
- F -- fixed - strings: grep - F 는 fgrep 에 해당 합 니 다.
- G -- basic - regexp: 기본 정규 표현 식 
    egrep - G 는 grep 에 해당 합 니 다.
    fgrep - G 는 grep 에 해당 합 니 다.
- P per1 - regexp: PCRE 엔진 사용 하기;
- A -- after - context = NUM: PATTERN 을 표시 하면 서 뒤에 NUM 줄 을 표시 합 니 다.
            a,                  
            ]$ cat a
            dasda
            efaf
            aew
            aa
            gaergaerg
            aerg
            aergaerg
            aer
            ga
            ergaeg
         ]$ cat a |grep-A 2 "aa"

   일치 하 는 결과:
    aa
    gaergaerg
    aerg
    일치 하 는 내용 을 표시 하고 뒤의 두 줄 을 표시 합 니 다.
- B -- before - context = NUM: PATTERN 을 표시 하면 서 앞 에 NUM 줄 을 표시 합 니 다.
         ]$ cat a |grep-B 2 "aa"

    efaf
    aew
    aa 
    일치 하 는 내용 을 표시 하고 앞의 두 줄 을 표시 합 니 다.
- C -- context = NUM: PATTERN 을 표시 하면 서 앞 뒤 NUM 줄 을 표시 합 니 다.
                 ]$ cat a |grep -C 2 "aa"

      일치 하 는 결과:  
        efaf
        aew
        aa
        gaergaerg
        aerg
    일치 하 는 내용 을 표시 하고 앞 과 뒤의 두 줄 을 표시 합 니 다.
PATTERN 은 필터 조건 으로 정규 표현 식 의 메타 문자 와 특별한 의미 가 없 는 텍스트 문자 로 구성 되 어 있 습 니 다.정규 표현 식 의 메타 문 자 는 정규 표현 식 엔진 에 의 해 특수 한 의미 로 해 석 됩 니 다.pcre - perl 언어의 정규 표현 식 엔진 은 현재 공 인 된 가장 완전한 엔진 입 니 다.정규 표현 식 의 메타 문자 로 구성 되 어 있 습 니 다.예 를 들 면:
  문자 일치:
    .:임의의 단일 문자 일치 하기;
            ]$ cat a |grep "."

      일치 하 는 결과:
        dasda
        efaf
        aew
        aa
        gaergaerg
        aerg
        aergaerg
        aer
        ga
        ergaeg
    []: 범위 내의 임의의 단일 문자 와 일치 합 니 다.   
            ]$ echo abcde | grep "[ace]"

    일치 하 는 결과:
        abcde
    [^]: 지정 한 범위 이외 의 사람 에 게 단일 문자 로 일치 합 니 다.
      ]$ echo abcde | grep "[^ace]"

    일치 하 는 결과:
        abcde
  다음 의 모든 문자 집합 은 [] 에 단일 문자 와 일치 하 는 데 사용 할 수 있 습 니 다.
   [: lower:]: 소문 자
            ]$ echo 1a2D |grep "[[:lower:]]"

    일치 하 는 결과:
        1a2D
   [: upper:]: 대문자
            ]$ echo 1a2D |grep "[[:upper:]]"

    일치 하 는 결과:
        1a2D
   [: alpha:]: 모든 알파벳 은 [lower:] 와 [upper:] 의 조합 과 같 습 니 다.
            ]$ echo 1a2D |grep "[[:alpha:]]"

    일치 하 는 결과:
        1a2D
   [: digit:]: 숫자 0 - 9: 0 1 2 3 4 5 6 7 8 9
            ]$ echo 1a2D |grep "[[:digit:]]"

    일치 하 는 결과:
        1a2D
   [: space:]: 스페이스 바 와 탭 문자
공백 과 탭 문자 일치
   [: alnum:]: 알파벳 과 숫자 는 [: alpha:] 와 [: digit:] 의 조합 과 같다.
            ]$ echo 1a2D |grep "[[:alnum:]]"

    일치 하 는 결과:
        1a2D
   [: punct:]: 특수 문자:!" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ `  ~
            ]$ echo '1a2D?!@#' |grep"[[:punct:]]"(       ,                     )

    일치 하 는 결과:
        1a2D?!@#
   [: blank:]: 공백
   [: xdigit:]: 모든 16 진수: 0 1, 2, 3, 4, 5, 6, 7, 9 A B C D E F a b c d e f
            ]$ echo '1a2D?!@#' |grep"[[:xdigit:]]"

    일치 하 는 결과:
        1a2D?!@#
   a - z: 모든 소문 자;
            ]$ echo '1a2D?!@#' |grep "[a-z]"

    일치 하 는 결과:
        1a2D?!@#
   A - Z: 모든 대문자
            ]$ echo '1a2D?!@#' |grep "[A-Z]"

    일치 하 는 결과:
        1a2D?!@#
   0 - 9: 모든 십 진법 숫자 를 표시 합 니 다.
            ]$ echo '1a2D?!@#' |grep "[0-9]"

    일치 하 는 결과:
        1a2D?!@#
  횟수 일치: 이 문자 이전의 문자 가 나타 날 수 있 는 횟수;
            ]$ cat a | grep "[[:alpha:]]*"

    일치 하 는 결과:
        Dasda
         
        Efaf
   *:그 앞의 문 자 는 임 의 회 가 나타 날 수 있다. (0 회, 1 회 또는 여러 번)
   \?:그 앞의 문 자 는 있 으 나 마 나 (0 회 또는 1 회)
   \+:그 앞의 문 자 는 적어도 한 번 (한 번 또는 여러 번) 나타난다.
   \{m \}: 앞의 문 자 는 m 번 나타 나 야 합 니 다.
            ]$ echo "aaaa" |grep"a\{3\}"

    일치 하 는 결과:
        aaaa
   \{m, n \}: 앞의 문 자 는 적어도 m 번, 많 게 는 n 번 나타 납 니 다.
   \{, n \}: 앞의 문 자 는 적어도 0 번, 많 게 는 n 번 나타 납 니 다.
   \{m, \}: 앞 에 있 는 문 자 는 최소 m 번 나타 납 니 다.×××;
  조 합 된 예:
   .*:임의의 문자 가 여러 번 나타 납 니 다.
  위치 고정 문자:
   닻 고정:
    행 두 묘 정: ^
            ]$ cat a
            dasda
            efaf
            aew
            aa
            gaergaerg
            ga
            ergaeg
            ]$ cat a | grep "^a"

    일치 하 는 결과:
        aew
        aa
        a 로 시작 하 는 줄 과 일치 합 니 다.
    행 미 닻: $
            ]$ cat a
         dasda
        efaf
        aew
        aa
        gaergaerg
        ga
        ergaeg
            ]$ cat a | grep "g$"

    일치 하 는 결과:
        gaergaerg
        ergaeg
   글자 닻:
    닻: \ \
            ]$ echo "as is da" | grep"\    일치 하 는 결과:
        asis da 
        a 자로 시작 하 는 문자열 과 일치 합 니 다.
    글자 끝 닻: \ \ > 또는 \ b
    \b: 옛날 버 전 은 사용 하 는 것 을 권장 하지 않 습 니 다. 왜냐하면 가끔 문제 가 생 길 수 있 기 때 문 입 니 다. 예 를 들 어 앞 닻 과 뒤 닻 은 구분 하기 어렵 습 니 다.
            ]$ echo "as is da" | grep"s\>"      일치 하 는 결과:            as is da         s 자로 끝 나 는 문자열 과 일치 합 니 다.어떤 경우 에는 시작 과 끝 이 일치 하 는 문자열 이 필요 할 수도 있 습 니 다. 위의 방법 만 사용 하면 하기 어렵 기 때문에 이 좋 은 것 을 그룹 으로 나 누고 교체 할 수 있 습 니 다. 일치 할 때 앞 에 일치 하 는 것 을 표시 한 다음 뒤에서 참조 할 수 있 습 니 다. 구체 적 인 방법 은 다음 과 같 습 니 다.    \(PATTERN \): PATTERN 에 일치 하 는 문 자 를 전체 로 처리 합 니 다.    일치 하 는 메타 문자 에서 왼쪽 에서 오른쪽으로 세 고 몇 번 째 '(' 에 포 함 된 내용 은 몇 입 니까? 뒤에서 \ 1, \ 2, \ 3 을 사용 하여 참조 할 수 있 습 니 다.    PATTERN1\(pattern2\)pattern3\(pattern4\(pattern5\)\)     \1:pattern2     \2:pattern4 \(pattern5\)     \3:pattern5 분 류 를 알 게 된 후에 우 리 는 그것 을 사용 하여 실제 작업 을 할 수 있 습 니 다. 예 를 들 어 / etc / passwd 의 uid 와 gid 가 같은 줄 을 찾 을 수 있 습 니 다.        grep '\(\\).*\1' /etc/passwd  일치 할 때 우 리 는 12 나 34 와 일치 할 수도 있 습 니 다. 그러면 '\ |' 을 사용 해 야 합 니 다.이 기호 입 니 다. 그러나 이 기 호 는 양쪽 의 문자열 을 하나의 전체 로 생각 할 수 있 습 니 다. 가끔 우 리 는 각각 대소 문자 로 시작 하 는 예 를 들 어 A \ | american 을 쓰 고 싶 을 수도 있 습 니 다. 그러나 이 방법 은 잘못 되 었 습 니 다. 그 는 A 나 american 을 출력 할 것 입 니 다. 이 문 제 는 두 가지 방법 으로 해결 할 수 있 습 니 다. 하 나 는 (A \ | a) 입 니 다.merican, 두 번 째 는 모든 것 을 쓰 는 것 입 니 다: American \ | american다음은 예 를 들 어:   ifconfig 명령 의 실행 결과 100 ~ 255 사이 의 정 수 를 찾 으 십시오.
       첫 번 째: 1    2
       위: 0 ~ 9  0~4 5
       위: 0 ~ 9  0~9 0~5  답:            ifcanfig|grep '\'   grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]  기본 적 인 상황 에서 grep 명령 뒤에 하나의 pattern 만 허용 합 니 다. 그러나 가끔 은 우리 가 일치 하고 싶 은 여러 개의 것 과 일치 해 야 할 때 가 있 습 니 다. 그러면 이 때 는 - e 옵션 을 사용 해 야 합 니 다. - e 옵션 뒤에 하나의 pattern 을 매개 변수 로 할 수 있 습 니 다. 그러면 우 리 는 다른 것 과 동시에 일치 할 수 있 습 니 다. 편 의 를 위해 필요 한 pattern 을 기록 할 수 있 습 니 다.한 파일 에 들 어가 면 줄 마다 하나의 pattern 만 있 으 면 grep - f file 방식 으로 다 중 pattern 매 칭 을 실현 할 수 있 습 니 다.egrep 와 fgrep 는 grep 의 파생 판 이 라 고 할 수 있 습 니 다. grep 에 특수 명령 을 추가 하면 egrep 와 fgrep 가 됩 니 다. egrep 는 grep 에 - E 옵션 을 추가 하 는 것 입 니 다. 그 역할 은 뒤의 일치 하 는 매개 변 수 를 전의 없 이 적용 하 는 것 입 니 다. 기본 적 인 정규 표현 도 사용 할 수 있 고 확장 식 도 사용 할 수 있 습 니 다. fgrep 는 grep 에 - F 옵션 을 추가 하 는 것 과 같 습 니 다. pattern 의 모든 문 자 를 사용 합 니 다.작문 본 문 자 를 처리 합 니 다.

좋은 웹페이지 즐겨찾기