정규 표현식
특수 문자
|문자|의미 |
|----|---------------------------------------------------|
|^ |한 줄의 시작을 뜻하는 앵커(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