Bash 用于填充日期列表中的空白的Awk命令

Bash 用于填充日期列表中的空白的Awk命令,bash,awk,Bash,Awk,我有一个逗号分隔的列表,其中有数百行以YYYY-MM-DD格式的日期开头。这些日期大部分是连续的,但也有一些空白 我希望使用awk命令来查找这些间隙,并为每个缺失的日期添加新行,缺失的日期在第一列中报告。然后,所需的输出将具有连续的日期 我在Mac电脑上,为了它的价值。MacOS/usr/bin/awk无法做到这一点,除非调用date,但使用自制程序安装GNU awk: 输入文件 2020-02-23 a 2020-02-24 b 2020-02-26 c 2020-03-02D 2020-03

我有一个逗号分隔的列表,其中有数百行以YYYY-MM-DD格式的日期开头。这些日期大部分是连续的,但也有一些空白

我希望使用
awk
命令来查找这些间隙,并为每个缺失的日期添加新行,缺失的日期在第一列中报告。然后,所需的输出将具有连续的日期


我在Mac电脑上,为了它的价值。

MacOS/usr/bin/awk无法做到这一点,除非调用
date
,但使用自制程序安装GNU awk:

输入
文件

2020-02-23 a
2020-02-24 b
2020-02-26 c
2020-03-02D
2020-03-03东
date\u填充符
code

#!/usr/bin/env gawk -f
BEGIN {DAY = 86400}
{
    split($1, d, "-")
    time = mktime(d[1] " " d[2] " " d[3] " 0 0 0")
}
NR > 1 {
    while (prev + DAY < time) {
        prev += DAY
        print strftime("%Y-%m-%d", prev)
    }
}
{
    print
    prev = time
}
考虑复习,然后相应地更新问题;特别地。。。示例输入、所需的(正确的)输出、到目前为止您尝试过的代码以及代码生成的(错误的)输出