加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:10:53 所属栏目:安全 来源:网络整理
导读:我有一个具有以下格式的数据集 第一和第二个字段表示研究的开始和结束的日期(M / D / YYYY)。 如何将数据扩展到所需的输出格式,考虑到使用AWK或BASH脚本的闰年? 您的帮助非常感激。 输入 7/2/2009 7/7/2009 2/28/1996 3/3/1996 12/30/2001 1/4/2002 所需输
我有一个具有以下格式的数据集

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读