'시스템/Shell Script'에 해당되는 글 2건

  1. 2014.10.23 Shell 에서의 정규표현식
  2. 2013.05.23 date 명령어로 날짜,시간 계산하기
시스템/Shell Script2014. 10. 23. 14:23

정규표현식 이란?

 

 

정규표현식이란 간단하게 이야기해서 검색에서 사용할 매칭되는 같은 문자들의 패턴을 뜻합니다.

 

또한 정규표현식은 모든 언어(jsp,php,asp,javascript,perl 등등)에서 사용이 되며, 사용법에는 큰 차이는 없습니다.

 

 

우선 Shell Script 에서 사용되는 정규표현식에 대하여 알아보겠습니다.

정규표현식에서는 문자 그대로의 의미 이상으로 해석되는 메타문자 라고 부르는 문자들의 집합을 사용합니다.

 

 

연산자

내용

.

newline을 제외한 오직 하나의 문자와 일치합니다.
(예 : "1..e" 정규표현식은 1을 포함하고 두개의 문자 다음에 e가 나오는 라인을 의미합니다.

?

자신 앞에 나오는 정규표현식이 0개 이거나 1개인 것과 일치하고 대부분 하나의 문자와
매칭할 때 사용합니다.

*

바로 앞의 문자열이나 정규표현식에서 0개 이상 반복되는 문자를 의미합니다.

+

자신 앞에 나오는 하나 이상의 정규표현식과 일치합니다. * 와 비슷하게 동작하지만
반드시 하나 이상과 일치합니다.

{N}

정확히 N번 일치 합니다.

{N,}

N번 또는 그 이상 일치합니다.

{N,M}

적어도 N번 일치하지만 M번 일치를 넘지 않습니다.

-

목록에서 처음과 마지막을 제외한 범위를 의미하거나 목로의 마지막 지점을 의미합닏.

^

라인의 시작에서의 공백 문자열을 의미합니다. 또한 목록의 범위에 없는 문자들을 의미합니다.
(예: ^linux 는 linux 문자열로 시작하는 모든 라인을 의미합니다.)

$

라인 마지막에서의 공백 문자열을 의미합니다.
(예 : linux$ 는 linux 로 끝나는 모든 라인을 의미합니다.)

^$

빈 줄과 일치합니다.

[…]

대괄호는 단일 정규표현식에서 문자들을 집합으로 묶어줍니다.
예:
[xyz] : x, y, z 중 한 문자와 일치합니다.
[c-n] : c에서 n  사이에 속하는 한 문자와 일치합니다.
[B-Pk-y] : B에서 P까지 또는 k에서 y까지의 한 글자와 일치합니다.
[a-z0-9] : 소문자나 숫자 중 한 문자와 일치합니다.
[^b-d] : b 에서 d 사이의 문자를 제외한 모든 문자를 나타냅니다.
           또한 ^ 는 바로 뒤에 나오는 정규표현식의 의미를 반대로 해석하도록 합니다.

\

특수문자를 원래의 문자 의미대로 해석합니다.
예 : \$ : $ 문자 그대로 해석합니다.

\b

단어 끝의 공백 문자열을 의미합니다.

\B

단어 끝이 아닌 곳에서의 공백 문자열을 의미합니다.

\<

단어 시작에서의 공백 문자열을 의미합니다.
예 : \<linux    : linux 문자열로 시작되는 단어를 포함하고 있는 라인

\>

단어 끝에서의 공백 문자열을 의미합니다.
예 : linux \>   : linux 문자열로 끝나는 단어를 포함하고 있는 라인

 

 

 

 

아래의 내용은 정규표현식에서 사용하는 확장된 메타문자(브래킷) 입니다.

 

브래킷

내용

[:alnum:]

[A-Za-z0-9] 처럼 알파멧 문자와 숫자로 이루어진 문자열 입니다.

[:alpha:]

[A-Za-z] 과 동일한 알파벳 문자를 의미합니다.

[:blank:]

[ \x09] 스페이스와 탭을 의미합니다.

[:cntrl:]

컨트롤 제어 문자를 의미합니다.

[:digit:]

[0-9] 숫자를 의미합니다.

[:graph:]

[!-~] 공백이 아닌 문자를 의미합니다.(스페이스, 제어문자들은 제외)

[:lower:]

[a-z] 소문자

[:print:]

[ -~] [:graph:]와 비슷하지만 스페이스 문자를 포함합니다.

[:punct:]

[!-\:-@[-'{-~] 문장 부호 문자

[:space:]

[ \t\v\f] 모든 공백 문자(newline 줄바꿈, 스페이스, 탭)

[:upper:]

[A-Z] 대문자

[:xdigit:]

[0-9a-fA-F] 16진수에서 사용할 수 있는 숫자

 

 

예제)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'시스템 > Shell Script' 카테고리의 다른 글

date 명령어로 날짜,시간 계산하기  (0) 2013.05.23
Posted by 소울하트
시스템/Shell Script2013. 5. 23. 10:43

리눅스에서 date 명령어로 날짜 와 시간을 계산할 수 있습니다.

 

과거 시간
 
date -d '1 day ago'                       # 1일전

date -d '25 day ago'                      # 25일전

date -d '100 day ago'                    # 100일전

date -d '1 week ago'                     # 1주일전

date -d '2 month ago'                   # 1달전

date -d '3 year ago'                      # 3년전

date -d '10 second ago'                # 10초전

date -d '20 minute ago'                 # 20분전

date -d '30 hour ago'                    # 30시간전

date -d '3 year 7 month ago'          # 3년 7개월전

 

 

미래 시간
* 과거에서 ago 를 빼면 됨

 

date -d '1 day'                                    # 1일후 = 내일

date -d '25 day'                                   # 20일후

date -d '100 day'                                   # 20일후

date -d '1 week'                                  # 1주일후

date -d '3 month'                                 # 3달후

date -d '5 year'                                   # 5년후

date -d '10 second'                             # 10초후

date -d '20 minute'                               # 20분후

date -d '25 hour'                                  # 25시간후

date -d '5 year 8 month 10 day'              # 5년 8개월 10일 후


 

요일 기준

 

date -d 'this friday'                  # 이번주 금요일

date -d 'last monday'               # 지난 월요일

date -d 'next tuesday'             # 다음 화요일

 


특정 시간을 기준으로 날짜 더하고 빼기

 

date -d '2010-01-03 07:32:10 + 2 day 5 hours 17 minute'                 # 2010년 1월 3일 7시 32분 10초를 기준으로 2일 5시간 17분후


 

date 옵션 1

-d 는 --date 옵션으로 사용해도 됩니다. --date 로 쓸때에는 --date= 형식으로 사용하시면 됩니다.

 

date --date='2 month'


 

date 옵션 2

시간단위를 나타내는 day, week, month, year, second, minute, hour 등은 뒤에 s(복수)를 붙여도 되고 안붙여도 됩니다.

 

date -d '1 day ago'date -d '1 days ago'


 

date 옵션 3

시간을 원하는 형식으로 뽑기위해서는 아래같이 하시면 됩니다.

현재 시간으로부터 2일전의 년-월-일 시:분:초 형식으로 표시하려면

 

date '+%Y-%m-%d %H:%M:%S' -d '2 day ago'


 

'시스템 > Shell Script' 카테고리의 다른 글

Shell 에서의 정규표현식  (0) 2014.10.23
Posted by 소울하트