반응형

     정보

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

    • 작성자    : 이상호

    • 작성일    : 2021-01-02

    • 설   명    :

    • 수정이력 :

     

     내용

    [개요]

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

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

     

     

    [특징]

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

     

    [기능]

    • 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

     

     

    [명세]

    • [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"

     

     

    [전체]

    • 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
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기