zhoufcumt的个人博客分享 http://blog.sciencenet.cn/u/zhoufcumt

博文

分别输出年月日的C shell脚本

已有 4113 次阅读 2011-11-4 07:45 |个人分类:Shell|系统分类:科研笔记|关键词:学者| gamit, Shell脚本, 年月日分别输出, doy

最近想写一个批量下载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动态库编译

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-30 10:17

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部