서버/리눅스

[리눅스] 정규표현식

장동규 2017. 3. 30. 20:03

[정규표현식]

문자열 정규표현식은 싱글쿼터나 더블쿼터로 묶어준다

#> grep -E  "문자열" "파일" : 문자열을 포함한 라인을 찾는다.

  "^문자열" "파일" : ^서식문자가 이 값으로 시작되는 라인을 나타낸다

  '[^문자열]' "파일" : [문자열]에 포함된 단어가 한개라도 포함되지 않은 라인

  '[ABC]' "파일" : A, B, C중 한개가 포함된 단어를 포함된 라인 : 배열표현

  '[a-z]' "파일" : 단어의 범위만큼 한개라도 포함된 라인

  '[ab][b]' "파일" : 첫번째 문자열은 a나 b고 그다음 문자는 b가 포함된 라인

  '[a-zA-Z0-9]' "파일" : 소문자,대문자,숫자 중 아무거나 포함된 라인

  '(문자열1|문자열2)' : 문자열1과 문자열2를 포함한 라인을 찾는다. >> 파이프로 묶어줄수 있다.


안쓰면 : 1개

*  : 0번이상

+ : 1번이상

? : 0 or 1

{n } : 중복횟수 지정(n번 반복)

{n, N} : 중복횟수 범위 지정(n ~ N)

. : 모든문자


  '[a-z]+[0]' "파일" : 소문자 1개이상으로 출력되다가 0으로 끝난 라인

  '[a-z]*[0]' "파일" : 소문자 0개이상으로출력되다가 0으로 끝난 라인(그냥 소문자가 없고 0으로 끝나는라인) 

  '[a-z][a-zA-Z0-9]' "파일" : 소문자로시작하다가 숫자영문자로 끝나는 라인

  '[a-zA-Z0-9]+[@][a-zA-Z0-9]+(.com|.net|.co.kr)' "파일" : 이메일이 .com .net .co.kr로 끝나는 이메일만 출력

  '[a-zA-Z0-9]{6,10}[@][a-zA-Z0-9]+(.com|.net|.co.kr)' "파일" : 이메일이 .com .net .co.kr로 끝나는 이메일만 출력

  '.{6,10}[@].+(.com)' "파일" : .을 사용해 모든문자 6~10아이디와 도메인.com을 가진 라인 출력