8桁の数値で表された年月日のデータを、年、月、日に分割します。
例えば、
20110523
を
MAY 23 2011
や
2011 05 23
に分割します。
#!/bin/sh
yyyymmdd=20110523
yyyy=${yyyymmdd:0:4}
mm=${yyyymmdd:4:2}
dd=${yyyymmdd:6:2}
if [ $mm -eq 01 ]; then
mmm=JAN
elif [ $mm -eq 02 ]; then
mmm=FEB
elif [ $mm -eq 03 ]; then
mmm=MAR
elif [ $mm -eq 04 ]; then
mmm=APR
elif [ $mm -eq 05 ]; then
mmm=MAY
elif [ $mm -eq 06 ]; then
mmm=JUN
elif [ $mm -eq 07 ]; then
mmm=JUL
elif [ $mm -eq 08 ]; then
mmm=AUG
elif [ $mm -eq 09 ]; then
mmm=SEP
elif [ $mm -eq 10 ]; then
mmm=OCT
elif [ $mm -eq 11 ]; then
mmm=NOV
elif [ $mm -eq 12 ]; then
mmm=DEC
fi
echo $mmm $dd $yyyy
echo $yyyy $mm $dd
exit 0
GrADSのコントロールファイルの作成に使えます。
#!/bin/sh
yyyymmdd=20110523
yyyy=${yyyymmdd:0:4}
mm=${yyyymmdd:4:2}
dd=${yyyymmdd:6:2}
if [ $mm -eq 01 ]; then
mmm=JAN
elif [ $mm -eq 02 ]; then
mmm=FEB
elif [ $mm -eq 03 ]; then
mmm=MAR
elif [ $mm -eq 04 ]; then
mmm=APR
elif [ $mm -eq 05 ]; then
mmm=MAY
elif [ $mm -eq 06 ]; then
mmm=JUN
elif [ $mm -eq 07 ]; then
mmm=JUL
elif [ $mm -eq 08 ]; then
mmm=AUG
elif [ $mm -eq 09 ]; then
mmm=SEP
elif [ $mm -eq 10 ]; then
mmm=OCT
elif [ $mm -eq 11 ]; then
mmm=NOV
elif [ $mm -eq 12 ]; then
mmm=DEC
fi
echo $yyyy $mmm $dd
infle=${yyyymmdd}.sst.bin
lonw=115
lone=135
lats=24
latn=38
ctl=$(basename $infle .bin).ctl
undef=-999
cat <<EOF >$ctl
dset ^${infle}
title mgdsst
undef ${undef}
options little_endian
xdef 1440 linear 0.0 0.25
ydef 720 linear -89.875 0.25
zdef 1 linear 0.0 1
tdef 1000 linear 00z${dd}${mmm}${yyyy} 1dy
vars 1
sst 1 0 sst
endvars
EOF
gs=$(basename $0 .sh).gs
out=$(basename $infle .bin).eps
yyyymmdd=$(basename $infle .sst.bin)
cat <<EOF > $gs
'open '$ctl
'set lon '${lonw}' '${lone}
'set lat '${lats} ' '${latn}
'd sst'
'draw title MGDSST '${yyyymmdd}
'print '$out
quit
EOF
grads -bcp "${gs}"
exit 0