最近想写一个批量下载ftp数据的文件,但上面的文件是诸如2010-01-10.类似这样开头的文件,有点头疼,因此,首先要解决分别输出年月日的脚本,通过借鉴gamit的脚本,提出来三种解决方案,把此问题已经解决,但第三种的cut解决方案待解决,希望把cut方案解决的朋友发给我下,脚本如下:
#!/bin/tcsh -f
#取日期2010-01-10为例
#输出结果为:2010/01/10
set ymds = `doy 2010 010 | tail -n -3 | head -n 1 | awk '{printf $2}'`
echo $ymds
#第一种解决方案
#输出结果为年:2010
set year = `doy 2010 010 | tail -n -3 | head -n 1 | awk '{printf "%04d \n", $2}'`
#输出结果为月:01
set month = `doy 2010 010 | tail -n -3 | head -n 1 | awk '{printf "%2s \n", substr($2,6,2)}'`
echo " "
echo $month
#输出结果为日:10
set day = `doy 2010 010 | tail -n -3 | head -n 1 | awk '{printf "%2s \n", substr($2,9,2)}'`
echo " "
echo $day
#第二种解决方案
#输出结果为:2010 01 10
set ymd = `doy 2010 010 | tail -n -3 | head -n 1 | awk '{print $2}' | awk -F"/" '{print $1, $2, $3}'`
echo " "
echo $ymd
#输出结果为年:2010
echo " "
echo $ymd[1]
echo " "
#输出结果为月:01
echo $ymd[2]
echo " "
#输出结果为日:10
echo $ymd[3]
echo " "
#第三种方案:cut解决,待解决
其中脚本中用到了gamit的doy模块,因此要事先装gamit软件,为了方便起见,读者也可以自己编一个时间转换的模块,供自己的脚本调用。
https://m.sciencenet.cn/blog-350278-504365.html
上一篇:
globk GLORG/apply_cond_full: Failure to converge问题的解决下一篇:
fortran动态库编译