希望根据Start Date ($1)
和End Date ($2)
生成连续日期。
闰年也在例子中。
INPUT.TXT
02-JUL-2015,04-JUL-2015
28-FEB-2016,02-MAR-2016
30-DEC-2013,01-JAN-2014
12-AUG-2012,14-AUG-2012
我尝试过以下命令和in-complete:
#!/usr/bin/gawk -f
BEGIN {FS=","}
{
split($1,s,"-")
split($2,e,"-")
st=mktime(s[3] " "(index("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",s[2])+2)/3" " s[1] " 0 0 0")
et=mktime(e[3] " "(index("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",e[2])+2)/3" " e[1] " 0 0 0")
for (i=st;i<=et;i+=60*60*24) print strftime("%d-%b-%Y",i)
}
期望的输出:
02-JUL-2015
03-JUL-2015
04-JUL-2015
28-FEB-2016
29-FEB-2016
01-MAR-2016
02-MAR-2016
30-DEC-2013
31-DEC-2013
01-JAN-2014
12-AUG-2012
13-AUG-2012
14-AUG-2012
请建议!!!
答案 0 :(得分:2)
将print strftime("%d-%b-%Y",i)
更改为print toupper(strftime("%d-%b-%Y",i))
。
获取由Arnold Robbins撰写的Effective Awk Programming,4th Edition。