CSH 스크립트의 파일 이름에서 날짜를 추출하시겠습니까?

CSH 스크립트의 파일 이름에서 날짜를 추출하시겠습니까?

날짜/시간을 생성하기 위해 파일 이름의 구성 요소를 살펴보는 CSH 스크립트를 작성하려고 합니다. 문제는 파일 이름의 일부를 추출하여 사용하는 방법을 모른다는 것입니다. 샘플 파일 이름은 다음과 같습니다.

nam_218_20140126_1800_001.grb  

20140126파일 이름의 날짜 부분과 1800시간입니다. 이를 추출하여 2014-01-26_18:00:00환경 변수에서 사용하도록 변환해야 합니다 . 힌트가 있나요?

감사해요

답변1

% set filename='nam_218_20140126_1800_001.grb' 
% set datetime=`echo "$filename" | sed -r 's/.*_([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{2})([0-9]{2}).*/\1-\2-\3_\4:\5:00/'`
% echo $datetime
2014-01-26_18:00:00

답변2

echo및 을 사용합니다 cut. 을 읽고 man cut다음과 같이 수행하십시오.

$ csh
aardvark:~% set zz="nam_218_20140126_1800_001.grb"
aardvark:~% set y=`echo $zz|cut -c9-12`
aardvark:~% echo $y
2014
aardvark:~% set m=`echo $zz| cut -c13-14`
aardvark:~% echo $m
01
aardvark:~% set d=`echo $zz| cut -c15-16`
aardvark:~% echo $d
26
aardvark:~% set H=`echo $zz | cut -c18-19`
aardvark:~% echo $H
18
aardvark:~% set M=`echo $zz | cut -c20-21`
aardvark:~% echo $M
00
aardvark:~% echo "$y-$m-${d}_${H}:${M}:00"
2014-01-26_18:00:00  

구체적인 답변 은 아닙니다 csh.

관련 정보