티스토리 뷰

기술

date 구하기

퍼렁별여행자 2017. 2. 9. 13:54

UNIX, LINUX에서 Shell Scripting을 하다보면 조건에 맞춰서 날짜를 구하거나 시간을 구해야 하는 경우가 왕왕 발생한다.

명령어를 모를 땐 복잡하게 그 값을 구하려고 애를 쓰곤 했는데(머리가 나쁘면 손발이 고생??), date 명령어에 이미 다 선언되어 있었다.

매뉴얼만 정독했어도 참 쉬웠을 것을...



<과거>

# date –d ‘yesterday’

 -> 어제

# date –d ‘1 day ago’

 -> 1일전 = 어제

# date –d ‘2 day ago’

 -> 2일전

# date –d ’35 day ago’

 -> 35일전

# date –d ‘1 week ago’

 -> 1주일전

# date –d ‘2 month ago’

 -> 2달전

# 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개월전



<미래>

Hint) 과거에서 ago 를 빼면 됨

# date –d ‘tomorrow’

 -> 내일

# date –d ‘1 day’

 -> 1일후 = 내일

# date –d ‘2 day’

 -> 2일후

# date –d ’35 day’

 -> 35일후

# date –d ‘1 week’

 -> 1주일후

# date –d ‘2 month’

 -> 2달후

# date –d ‘3 year’

 -> 3년후

# date –d ’10 second’

 -> 10초후

# date –d ’20 minute’

 -> 20분후

# date –d ’30 hour’

 -> 30시간후

# date –d ‘3 year 7 month’

 -> 3년 7개월후



<요일 기준>

# date –d ‘this friday’

 -> 이번주 금요일

# date –d ‘last monday’

 -> 지난 월요일

# date –d ‘next tuesday’ 

 -> 다음 화요일



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

예) 2017년 2월 3일 7시 32분 10초를 기준으로 2일 5시간 17분후


# date –d ‘2017-02-03 07:32:10 + 2 day 5 hours 17 minute’



<응용>

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


# date ‘+%Y-%m-%d %H:%M:%S’ –d ‘2 day ago’



<본편> 쉘스크립트에서 해당 시간을 변수에 담기

Shell Script 내에서 어제 날짜를 선언할 때


yesterday=$(date –d ‘1 day ago’)

또는

yesterday=`date -d ‘1 day ago’`




<참고>

테스트 하다가 깨달은 내용인데, 명사의 단/복수형은 구별하지 않는 듯 하다.

"1 day ago"나 '1 days ago"가 기능적으로 동일하고, "3 hour"나 "3 hours" 역시 기능적으로 동일했다.

댓글
공지사항
퍼렁별여행자
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함
링크