셸 프로 그래 밍 - 정규 표현 식

6424 단어 IT 운영
1. 정규 표현 식 은 무엇 입 니까?
정규 표현 식 은 문자 배열 과 일치 하 는 패턴 에 사용 되 는 문법 규칙 입 니 다.이것 은 주로 문자열 의 패턴 분할, 일치, 찾기 및 교체 작업 에 사 용 됩 니 다.
2. 정규 표현 식 과 마스크
  • 정규 표현 식 은 파일 에 조건 에 맞 는 문자열 을 일치 시 키 는 데 사 용 됩 니 다. 정규 표현 식 은 일치 하 는 문자열 을 포함 합 니 다.grep, awk, sed 등 명령 은 정규 표현 식 을 지원 할 수 있 습 니 다.
  • 어댑터 는 조건 에 맞 는 파일 이름 에 사용 되 며, 어댑터 는 완전히 일치 합 니 다.ls, find, cp 이 명령 들 은 정규 표현 식 을 지원 하지 않 기 때문에 셸 자신의 마스크 를 사용 하여 일치 시 킬 수 밖 에 없습니다.

  • 어댑터:
  • *: 임의의 내용 일치
  • ?: 임의의 내용 일치
  • []: 괄호 안에 있 는 문자 와 일치 합 니 다
  • 3. 기본 정규 표현 식
    문자
    역할.
    *
    이전 문 자 는 0 번 이나 여러 번 일치 합 니 다.
    .
    줄 바 꿈 자 를 제외 한 임의의 문자 와 일치 합 니 다.
    ^
    행수 일치.예 를 들 어 ^ hello 는 hello 로 시작 하 는 줄 과 일치 합 니 다.
    $
    줄 의 끝 과 일치 하 다.예 를 들 어 hello $는 hello 로 끝 나 는 줄 과 일치 합 니 다.
    []
    괄호 에서 지정 한 임의의 문자 와 일치 합 니 다. 한 글자 만 일치 합 니 다.예 를 들 어 [aoeiu] 는 임의의 모음 문자 와 일치 하고 [0 - 9] 는 임의의 숫자 와 일치 하 며 [a - z] [0 - 9] 는 작은 글자 와 한 숫자 로 구 성 된 두 글자 와 일치 합 니 다.
    [^]
    괄호 를 제외 한 임의의 문자 와 일치 합 니 다.예 를 들 어 [^ 0 - 9] 는 임의의 비 숫자 문자 와 일치 하고 [^ a - z] 는 임의의 비 소문 자 를 표시 합 니 다.
    \
    전의 부.특수 기 호 를 말 하 는 의 미 를 취소 하 는 데 사용 합 니 다.
    \{n,\}
    앞의 문자 가 마침 n 번 나 타 났 음 을 나타 낸다.예 를 들 어 [0 - 9]\{4\} 은 4 자리 숫자 와 일치 합 니 다.
    \{n,m\}
    앞의 문 자 는 적어도 한 번, 최대 m 번 나타 나 는 것 을 나타 낸다.예 를 들 어 [a - z]\{6, 8} 6 ~ 8 자리 에 맞 는 소문 자 입 니 다.
    보충:?() 확장 정규 수정 ~/. bashrc 프로필 에 속 합 니 다. grep 의 별명 을 짓 고 일치 하 는 색상 으로 alias grep = 'grep – color = auto' 를 표시 합 니 다.
    예: * 호의 예시
    [root@localhost home]# grep aa* test.txt 
    a
    aa
    aaa
    aaaa
    aaaaa
    ab
    aabb
    

    예 를 들 어 ".": 줄 바 꿈 자 를 제외 한 임의의 문자 "s. d"와 일치 합 니 다. s 와 d 라 는 두 글자 사이 에 반드시 두 글자 가 있 는 단어 와 일치 합 니 다.
    [root@localhost home]# grep "s..d" test.txt 
    said
    soid
    sdkdkdkd
    

    "s. * d": s 와 d 자모 사이 에 임의의 문자 가 있 습 니 다.
    [root@localhost home]# grep "s.*d" test.txt 
    said
    soid
    sdkdkdkd
    

    ". *": 모든 내용 과 일치 합 니 다.
    [root@localhost home]# grep ".*" test.txt 
    a
    aa
    aaa
    aaaa
    aaaaa
    
    ab
    aabb
    
    b
    bb
    bbb
    bbbb
    bbbb
    
    
    said
    soid
    sdkdkdkd
    

    예 를 들 어 "^"는 줄 의 첫머리 와 일치 합 니 다. "$"는 줄 의 끝 과 일치 합 니 다. "^ M": 대문자 로 시작 하 는 줄 과 일치 합 니 다.
    [root@localhost home]# grep "^a" test.txt 
    a
    aa
    aaa
    aaaa
    aaaaa
    ab
    aabb
    

    "n $": 소문 자 "n"으로 끝 나 는 줄 과 일치 합 니 다.
    [root@localhost home]# grep "b$" test.txt 
    ab
    aabb
    b
    bb
    bbb
    bbbb
    bbbb
    

    "^ $": 빈 줄 표시 와 일치 합 니 다. - n 옵션 을 추가 하고 줄 번 호 를 표시 합 니 다.
    [root@localhost home]# grep -n "^$" test.txt 
    6:
    9:
    15:
    16:
    

    예 를 들 어 "[]": 괄호 에서 지정 한 임의의 문자 와 일치 하고 한 글자 만 일치 합 니 다.
    "s [ao] id": s 와 i 자모 사이 에 일치 하거나 a 또는 o 의 문자열 입 니 다.
    [root@localhost home]# grep -n "s[ao]id" test.txt 
    17:said
    18:soid
    

    "[0 - 9]": 임의의 숫자 를 포함 하 는 줄 과 일치 합 니 다.
    [root@localhost home]# grep -n "[0-9]" test.txt 
    22:6adfadfadf8
    23:jladf8002378
    25:ladfjadf7
    27:3333333333
    29:2222222222

    "^ [a - z]": 소문 자로 시작 하 는 줄 과 일치 합 니 다.
    [root@localhost home]# grep "^[a-z]" test.txt 
    a
    aa
    aaa
    aaaa
    aaaaa
    ab
    aabb
    b
    bb
    bbb
    bbbb
    bbbb
    said
    soid
    sdkdkdkd
    jladf8002378
    ladfjadf7
    

    "[a - z] $": 소문 자로 끝 나 는 줄 과 일치 합 니 다.
    [root@localhost home]# grep "[a-z]$" test.txt 
    a
    aa
    aaa
    aaaa
    aaaaa
    ab
    aabb
    b
    bb
    bbb
    bbbb
    bbbb
    said
    soid
    sdkdkdkd
    
    [root@localhost home]# grep "^[a-z]$" test.txt 
    a
    b
    [root@localhost home]# grep "^[a-z][a-z]$" test.txt 
    aa
    ab
    bb

    "[^]": 괄호 를 제외 한 임의의 문자 와 일치 합 니 다.(설명: ^ 괄호 안에 넣 기)
    "^ [^ a - z]": 소문 자로 시작 하지 않 는 줄 과 일치 합 니 다.
    [root@localhost home]# grep "^[^a-z]" test.txt 
    6adfadfadf8
    3333333333
    2222222222
    

    "^ [^ a - zA - Z]": 알파벳 으로 시작 하지 않 는 줄 과 일치 합 니 다.
    [root@localhost home]# grep "^[^a-zA-Z]" test.txt 
    6adfadfadf8
    3333333333
    2222222222
    

    "\": 전의 문자, 특수 문자 의 의 미 를 상실 시 키 는 역할 "$": 일치 사용 "."끝 줄
    [root@localhost home]# grep "\.$" test.txt 
    6adfadfadf8.
    

    "\{n\}": 앞 에 있 는 문자 가 마침 n 번 "a\{3\}"이 나 타 났 음 을 나타 낸다. a 자모 와 일치 하여 세 번 연속 으로 나타 나 는 문자열 이다.메모: 최소 3 번 반복 합 니 다. 일치 하 는 결 과 는 3 개 이상 의 문자열 로 표 시 됩 니 다.
    [root@localhost home]# grep "a\{3\}" test.txt 
    aaa
    aaaa
    aaaaa
    

    "[0 - 9]\{3\}": 연속 세 개의 숫자 를 포함 하 는 문자열 과 일치 합 니 다.
    정확하게 찾 으 려 면 경계 부 호 를 붙 여야 한다.

    좋은 웹페이지 즐겨찾기