我有一个具有以下格式的数据集
第一和第二个字段表示研究的开始和结束的日期(M / D / YYYY)。
如何将数据扩展到所需的输出格式,考虑到使用AWK或BASH脚本的闰年?
您的帮助非常感激。
输入
7/2/2009 7/7/2009 2/28/1996 3/3/1996 12/30/2001 1/4/2002
所需输出
7/7/2009 7/6/2009 7/5/2009 7/4/2009 7/3/2009 7/2/2009 3/3/1996 3/2/1996 3/1/1996 2/29/1996 2/28/1996 1/4/2002 1/3/2002 1/2/2002 1/1/2002 12/31/2001 12/30/2001
如果你有gawk:
#!/usr/bin/gawk -f { split($1,s,"/") split($2,e,"/") st=mktime(s[3] " " s[1] " " s[2] " 0 0 0") et=mktime(e[3] " " e[1] " " e[2] " 0 0 0") for (i=et;i>=st;i-=60*60*24) print strftime("%m/%d/%Y",i) }
示范:
./daterange.awk inputfile
输出:
07/07/2009 07/06/2009 07/05/2009 07/04/2009 07/03/2009 07/02/2009 03/03/1996 03/02/1996 03/01/1996 02/29/1996 02/28/1996 01/04/2002 01/03/2002 01/02/2002 01/01/2002 12/31/2001 12/30/2001