我正在尝试创建从 01/01/2010 到 01/02/2010 的一系列日期,其中分钟的距离不均匀,如下所示:
2010 1 1 00 00 00
2010 1 1 00 20 00
2010 1 1 00 30 00
2010 1 1 00 40 00
2010 1 1 01 00 00
2010 1 1 01 20 00
2010 1 1 01 30 00
2010 1 1 01 40 00
...
2010 2 1 00 00 00
所以在第 00 分钟、第 20 分钟、第 30 分钟和第 40 分钟,每隔一小时,直到结束日期。我找到了有问题的帮助https://stackoverflow.com/questions/15621409/print-dates-in-date-range-linux 但我无法添加分钟,更不用说空格而不是'-'和不均匀脚步。到目前为止,这是我的代码,它不起作用:
startdate=2010-01-01-00-00-00
enddate=2010-02-01-00-00-00
curr="$startdate"
while true; do
echo "$curr"
[ "$curr" \< "$enddate" ] || break
curr=$( date +%Y-%m-%d-%H-%M-%S --date "$curr +10 minutes" )
done
如何以中间有空格的间隔创建上面的输出?
这是我的做法:
有什么
grep -Ev '[15]0 00$'
作用:grep
自身选择与其参数描述的一组条件匹配的行-v
: 选择与参数不匹配的行-E
: 声明我们将尝试匹配的模式是“扩展正则表达式”(实际上这里不需要它 - 我的错误)[15]0 00$
: 一个正则表达式,表示“选择以“1 或 5”结尾的行,然后是“零”,然后是“空格”,然后是“双零”。这与“10”和“50”行匹配,由于上述-v
描述,它们被删除了。