UNIX/유닉스 공통

[스크랩] 리눅스 정규식 , 메타문자

99iberty 2014. 5. 22. 17:12

http://ithack.tistory.com/67

 

^ : 행의 시작 지점을 의미한다.

ex) ^apple = apple로 시작하는 행

$ : 행의 끝 지점을 의미한다.

ex) apple$ = apple로 끝나는 행

[....] : 문자들의 집합을 의미한다.

ex) [a-z] = {a,b,c,d ~ x,y,z}과 일치

. : 임의의 한 글자를 의미한다.

ex) a.ple = a□ple apple(O), appple(X), applle(X), appleyu(O)

* : 바로 앞의 문자열이나 표현식에서 0개 이상 반복되는 문자를 의미한다.

ex) apple* = appl(O)[appl로 시작하고 e가 0번 반복되니 OK], apple(O)[appl로 시작하고 e가 1번 반복되니 OK], appleeee(O)[appl로 시작하고 e가 4번 반복되니 OK], appleeeyu(O), applle(X), ypple(X)

\ : $과 같은 변수 기호를 문자열로 인식시키기 위해 사용한다.

ex) echo \$1 = 1이란 변수의 값이 출력되지 않고 $1이 출력된다

\(...\) : 반복해서 사용할때 재사용을 위해 태그를 붙히는것을 의미한다

ex) \(ab\) = ab를 \1태그에 저장한다

\(ab\)\1cd = ababcd

\< : 단어 시작 지시자

\> : 단어 끝 지시자

ex) \<apple\> = apple로 시작하고 apple로 끝나는 문장과 일치 appleqw(X), apple(O), qwerapple(X), qcvfapplerwq(X)

X\{n\} : X문자가 n번 반복되는 행과 일치

ex) ab\{3\} = ababab(O), abab(X), ababababababab(X)

X\{n,\} : X문자가 n번 이상 반복되는 행과 일치

ex) ab\{1,\} = ab(O), abababab(O), abababababababababab.....(O)

X\{n,m\} : X문자가 n번 이상 m번 이하 반복되는 행과 일치

ex) ab\{3,5\} = ababab(O), ab(X), ababababab(O), abababababab(X)

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

문제 1) 현재 작업중인 프로세스 목록중 PID가 두자리수 (즉 10~99)인 것을 찾아라!!

ps -ef | grep ' \<[1-9][0-9]\> '

문제 2) 핸드폰 (집 전화번호 포함) 번호 패턴을 정규식을 통해 정의하라

지역번호 및 통신사 번호까지 모두 포함 (02, 080, 042, 010 등등 모두 포함)

가운데 숫자는 세자리가 될 수도 있고 네자리가 될 수도 있다 (017-145-5422 이것도 있고 010-3453-3451 도 있고)

cat 전화번호목록을담은파일명 | grep '\<0[0-9]\{1,2\}-[0-9]\{2,4\}-[0-9]\{4\}\>'