[ShellScript] 쉘 스크립트 UTC 시간에 대한 파일을 이용한 KST 시간 변환

 정보

  • 업무명    : 쉘 스크립트 UTC 시간에 대한 파일을 이용한 KST 시간 변환

  • 작성자    : 이상호

  • 작성일    : 2021-01-02

  • 설   명    :

  • 수정이력 :

 

 내용

[개요]

  • 안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.

  • 오늘 포스팅에서는 UTC 시간에 대한 파일을 이용한 KST 시간 변환을 소개합니다.

 

etc-image-0

 

[특징]

  • 리눅스에서 시간 변환을 하기 위해서 쉘 스크립트 기술이 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

 

[기능]

  • UTC를 KST 시간 변환

 

[활용 자료]

  • 자료명 : KMAPP_2018083109.csv

  • 자료 종류 : 모델 자료

  • 확장자 : csv

  • 기간 : 2018년 08월 31일 09시 UTC

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 소스 코드 참조

 

[사용 OS]

  • Linux (CentOS v7.3)

  • VMware Workstation Pro v15.5

 

[사용 언어]

  • ShellScript (csh)

 

 소스 코드

  • 소스 코드는 단계별로 수행하며 상세 설명은 다음과 같습니다.

  • 작업 환경의 경우 수행 쉘, 입력 자료, 출력 자료로 구성되어 있습니다.

  디렉터리명 파일명
작업 경로 prjDir=/SYSTEM/TEST/FileMove  
수행 쉘 ${prjDir} RunShell-FileDateConv.csh
입력 자료 ${prjDir}/INPUT KMAPP_2018083109.csv
출력 자료 ${prjDir}/OUTPUT KMAPP_2018083100.csv

 

etc-image-1

 

[명세]

  • [1 단계] 수행 쉘 실행 및 파일 조회

    • csh RunShell-FileDateConv.csh 명령어를 통해 쉘 실행

    • find 명령어를 통해 INPUT 경로의 파일 목록 조회

    • 파일 목록에 대한 반복문 수행

#!/bin/csh

set dataList = `find ./INPUT -mindepth 1 -maxdepth 1 -type f`

foreach dataInfo($dataList)

...

end

 

  • [2 단계] 날짜 및 시간 추출 및 변환

    • cut 명령어를 통해 파일 정보에서 날짜 (date) 및 시간 (hour) 추출

    • date 명령어를 통해 UTC (dtDateUTC) 및 KST (dtDateKST) 변환

   set date = `echo $dataInfo:t | cut -c 7-14`
   set hour = `echo $dataInfo:t | cut -c 15-16`

   set dtDateUTC = `date -d "${date} ${hour} UTC" +"%Y%m%d%H"`
   set dtDateKST = `date -d "${date} ${hour} KST" +"%Y%m%d%H"`

   # set setDataInfo = `echo ./OUTPUT/KMAPP_${dtDateUTC}.csv`
   set setDataInfo = `echo ./OUTPUT/KMAPP_${dtDateKST}.csv`

 

  • [3 단계] 파일 복사

    • cp 명령어를 통해 파일 복사

   cp -f $dataInfo $setDataInfo
   echo "cp -f $dataInfo $setDataInfo"

 

etc-image-2

 

[전체]

  • RunShell-FileDateConv.csh

#!/bin/csh

set dataList = `find ./INPUT -mindepth 1 -maxdepth 1 -type f`

foreach dataInfo($dataList)

   set date = `echo $dataInfo:t | cut -c 7-14`
   set hour = `echo $dataInfo:t | cut -c 15-16`

   set dtDateUTC = `date -d "${date} ${hour} UTC" +"%Y%m%d%H"`
   set dtDateKST = `date -d "${date} ${hour} KST" +"%Y%m%d%H"`

   # set setDataInfo = `echo ./OUTPUT/KMAPP_${dtDateUTC}.csv`
   set setDataInfo = `echo ./OUTPUT/KMAPP_${dtDateKST}.csv`

   cp -f $dataInfo $setDataInfo
#   echo "cp -f $dataInfo $setDataInfo"

end

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com