Linux 명령 의 정규 표현 식 메타 문자 해석

4591 단어 Linux
정규 표현 식 을 어떻게 사용 하 는 지 아 는 사람 이 많 지만 이 를 각 Linux 명령 에 활용 하려 면 아직도 많은 사람들 이 이런 의문 을 가지 고 있 을 것 이 라 고 믿는다. "이런 표기 법 이 이 명령 에 적합 한 지 아 닌 지?"
이 세 가지 정규 표현 식 메타 문자 집합 만 알 면 충분 합 니 다.
명령 에 따라 정규 표현 식 문자 의 집합 범위 도 다 릅 니 다.그러나 이론 적 으로 다음 과 같은 3 가지 (2 가지 + 1 개의 부분 집합) 정규 표현 식 메타 문자 집합 만 알 면 충분 하 다.
  • BRE (기본 정규 표현 식) 메타 문자 집합
  • ERE (정규 표현 식 확장) 메타 문자 집합
  • EREAWK 부분 집합
  • 물론 이들 외 에 도 GNU 확장 정규 표현 식 메타 문자 집합, Perl 확장 정규 표현 식 메타 문자 집합, JavaScript 확장 정규 표현 식 메타 문자 집합 등 이 있다.그러나 어떤 UNIX (또는 POSIX) 환경 에서 도 통용 되 려 면 세 가지 만 기억 하면 충분 하 다.(POSIX 에 국한 되 고 싶 지 않 더 라 도 다른 것 은 대체적으로 ERE 원 의 문자 집합 을 바탕 으로 각자 의 다른 확장 을 더 하 는 것 일 뿐 ERE 만 잘 파악 하면 공부 하 는 데 많은 노력 이 들 지 않 는 다.)
    각 Linux 명령 은 각각 어떤 메타 문자 집합 에 대응 합 니까?Linux 명령 에 대해 3 가지 분류 만 있 는 것 을 알 게 된 이상 구체 적 으로 어떤 대응 관 계 를 가 진 것 일 까?아래 표 만 보면 한눈 에 알 수 있다.
    명령 하 다.
    대응 하 는 메타 문자 집합
    AWK
    ERE 의 AWK 부분 집합
    ed
    BRE 메타 문자 집합
    egrep
    ERE 메타 문자 집합
    ex
    BRE 메타 문자 집합
    grep ('- E' 없 음)
    BRE 메타 문자 집합
    grep (있 습 니 다. - E)
    ERE 메타 문자 집합
    more
    BRE 메타 문자 집합
    sed
    BRE 메타 문자 집합
    vi
    BRE 메타 문자 집합
    일반적인 grep 명령 (-E 옵션 없 음) 은 일부 ERE 원 문자 집합 에 만 속 하 는 문자 앞 에 \ 을 더 하면 ERE 의 규칙 에 따라 역할 을 발휘 할 수 있다.
    각 메타 문자 집합 에 대한 설명
    구체 적 인 이름 이 어느 집합 에 해당 하 는 지 알 았 으 니 각 메타 문자 집합 을 자세히 소개 하 겠 습 니 다.
    1. BRE (기본 정규 표현 식) 메타 문자 집합
    원 문자 집중 (BRE 에 국한 되 지 않 음) 원 문 자 는 사용 하 는 장소 에 따라 3 조로 세분 화 할 수 있다.
    a - 1. 문자열 과 일치 하 는 메타 문자 ([] 외부 에 있 음)
    문자
    속뜻
    ^
    일치 하 는 문자열 (보통 한 줄) 의 머리
    $
    일치 하 는 문자열 (보통 한 줄) 의 끝 부분
    .
    임의의 문자 일치
    […]
    [] 에 포 위 된 임의의 문자 와 일치 합 니 다.
    [^…]
    [] 에 둘러싸 이지 않 은 임의의 문자 와 일치 합 니 다.
    *
    [반복 횟수 지정] 앞 에 나 온 내용 이 0 번 이상 나 왔어요.
    {n}
    [반복 횟수 지정] 앞 에 나 온 내용 이 n 번 나 왔어요.
    {n,}
    [반복 횟수 지정] 앞 에 나 온 내용 이 n 번 나 왔어요.
    {m,n}
    [반복 횟수 지정] 앞의 내용 이 m 회 이상, n 회 이하 나 왔 습 니 다.
    (…)
    [내용 지정] 그 포 위 된 내용 은 뒤에 인용 할 수 있 습 니 다.
    [규칙 재 활용] n 번 째 (...) 에 둘러싸 인 일치 규칙 을 말 하 며 재 활용 에 사용 합 니 다.예 를 들 어 ^ ([A - Z]) 123 \ \ 1 로 A B C 123 A B C B C C 와 일치 합 니 다.마지막 으로 ABC 123 ABCABC 와 일치 합 니 다.마지막 으로 ABC 123 ABCABC 와 일치 합 니 다.마지막 이전의 \ 1 은 [A - Z] 로 해석 된다.
    \x
    전의, 예 를 들 어 ^, \ \, 매 칭 에 사용, \ \ \ 매 칭 에 사용 ^, 매 칭 에 사용, \ 자체
    a - 2. 문자열 과 일치 하 는 메타 문자 ([] 내부 에 있 음)
    문자
    속뜻
    ^
    만약 에 뒤 를 바짝 따 르 면 반대 하 는 것 을 대표 합 니 다. 그렇지 않 으 면 [그 자체] 를 대표 합 니 다.
    -
    하나하나 열거 하 는 것 이 아니 라 일치 하 는 문자 의 범 위 를 간단명료 하 게 지정 하 는 데 사용 합 니 다.
    [:word:]
    POSIX 문자 클래스 라 고 합 니 다. word 는 alnum (모든 자모 와 숫자), cntrl (모든 제어 문자), lower (모든 소문 자), space (빈 칸, Tab, 줄 바 꿈), alpha (모든 자모), digit (모든 숫자), print (제어 문 자 를 제외 한 모든 문자), upper (모든 대문자), blank (빈 칸, Tab), graph(제어 문자, 공백, Tab 이외 의 모든 문자 등
    [.word.]
    예 를 들 어 [. hoge.] 는 (hoge) {1,} 에 해당 하지만 자주 사용 되 지 않 습 니 다.
    [=x=]
    예 를 들 어 [= a =] 는 a, à, â 등 과 일치 할 수 있 지만 이 용법 도 흔 하지 않다.
    b. 교 체 된 문자열 을 지정 합 니 다 (sed 등의 s / A / B / 에 있 는 B 부분)
    정규 표현 식 은 문자열 을 찾 을 뿐만 아니 라 가공 (교체) 에 도 자주 사 용 됩 니 다.
    문자
    속뜻
    n 번 째 (...) 에 둘러싸 인 내용 바 꾸 기
    &
    일치 하 는 모든 문자열 을 바 꾸 었 습 니 다.
    \x
    전의
    2. ERE (정규 표현 식 확장) 메타 문자 집합
    a - 1. 문자열 과 일치 하 는 메타 문자 ([] 외부 에 있 음)BRE 을 확 장 했 고 사용 할 수 있 는 원 문 자 는 증가 했다 (예 를 들 어 +, , |). 그러나 반드시 BRE 의 용법 을 호 환 하 는 것 은 아니다. 주요 목적 은 글 씨 를 더욱 선명 하 게 쓰 는 것 이다. 예 를 들 어 (, ), {, } 등 번 거 로 운 \ 을 쓸 필요 가 없다.
    문자
    속뜻
    +
    [반복 횟수 지정] 앞 에 나 온 내용 이 1 번 이상 나 왔어요.
    {n}
    [반복 횟수 지정] 앞 에 나 온 내용 이 n 번 나 왔어요.
    {n,}
    [반복 횟수 지정] 앞 에 나 온 내용 이 n 번 나 왔어요.
    {m,n}
    [반복 횟수 지정] 앞의 내용 이 m 회 이상, n 회 이하 나 왔 습 니 다.
    (…)
    [내용 지정] 그 포 위 된 내용 은 뒤에 인용 할 수 있 습 니 다.
    |
    [논리 또는] 왼쪽 이나 오른쪽 내용 과 일치 하면 다음 과 같은 쓰기 에 주의 하 십시오 ^ ABD
    \x
    전의
    a - 2. 문자열 과 일치 하 는 메타 문자 ([] 내부 에 있 음)
    이 부분 은 BRE 과 같다.
    b. 교 체 된 문자열 을 지정 합 니 다 (sed 등의 s / A / B / 에 있 는 B 부분)
    이 부분 도 BRE 과 같 습 니 다. 하지만...
    3. ERE 의 AWK 부분 집합
    이 부분 에서 가장 중요 한 원 문 자 는 중복 횟수 를 지정 하 는 {} 이다. 실제로 2008 버 전의 POSIX 은 이 원 문 자 를 다시 넣 는 것 을 권장 하지만 현재 각 운영 체제 에 실 장 된 AWK 프로그램 은 ERE 과 거의 통용 되 지 않 는 다.

    좋은 웹페이지 즐겨찾기