如何使用BASH脚本的AWK生成给出的开始和结束日期的日期序列?

前端之家收集整理的这篇文章主要介绍了如何使用BASH脚本的AWK生成给出的开始和结束日期的日期序列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个具有以下格式的数据集

第一和第二个字段表示研究的开始和结束的日期(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

猜你在找的Bash相关文章