Meadows of wild horses

Blog...

Shell 정규 표현식

| Comments

정규 표현식

특수 문자

|문자|의미                                               |
|----|---------------------------------------------------|
|^   |한 줄의 시작을 뜻하는 앵커(anchor)                 |
|$   |한 줄의 끝을 뜻하는 앵커                           |
|.   |임의의 문자 하나                                   |
|[ ] |일반적으론 하나검사 1-10이면 1에서 부터 10까지 검사|

보통의 문자로 취급하게 하려면 앞에 \를 붙인다 \$

대괄호쌍 안에서 문자 범위 지정

부합 패턴 의미
[:alnum:] 영문자 또는 숫자 |
[:alpha:] 영문자 |
[:ascii:] ASCII 문자 |
[:blank:] 빈칸 또는 탭 |
[:cntrl:] ASCII 제어 문자 |
[:digit:] 숫자 |
[:graph:] 비제어, 비공백 문자 |
[:lower:] 소문자 |
[:print:] 인쇄 가능 문자 |
[:punct:] 문장 부호 |
[:space:] 공백 문자(수직 탭도 포함)|
[:upper:] 대문자 |
[:xdigit:] 16진 숫자 |

-E 옵션 활성화

옵션 의미
? 표현식이 있어도 없어도 되지만 한번만 부합해야 한다|
* 0회 이상 부합 해야 한다 |
+ 1회 이상 부합 |
{n} n회 반복해서 부합 |
{n, } n회 이상 반복 부합 |
{n,m} n회 이상 m회 이하 반복 부합 |

실습

e로 끝나는 줄 찾기

$ grep e$ words2.txt

a로 끝나는 단어들이 있는 줄 찾기

$ grep a[[:blank:]] words2.txt

Th로 시작하는 세 글자 단어 찾기

$ grep Th.[[:space:]] words2.txt

열자 짜리 소문자 찾기

$ grep -E [a-z]{10} word.txt

Comments