如何在bash上生成随机数据的日期范围

时间:2012-08-24 10:19:06

标签: bash date datetime

我需要生成一年中所有日子的字符串

例如:

MIN_DATE=01.01.2012

MAX_DATE=31.12.2012

for date in {1...366..1}
 do
 echo ...
done

3 个答案:

答案 0 :(得分:11)

for d in {0..365}; do date -d "2012-01-01 + $d days" +'%d.%m.%Y'; done

答案 1 :(得分:2)

不是纯粹的bash解决方案,但我的dateutils可以提供帮助:

dseq 01.01.2012 31.12.2012 -f %d.%m.%Y -i %d.%m.%Y
=>
  01.01.2012
  02.01.2012
  ...
  31.12.2012

可以使用-f配置输出格式,使用-i配置输入格式。

答案 2 :(得分:0)

使用ISO 8601日期格式(年 - 月 - 日),您可以按字典顺序比较日期。它比我想要的有点麻烦,因为bash没有字符串的“< =”运算符。

year=2011
d="$year-01-01"
last="$(($year+1))-01-01"
while [[ $d < $last ]]; do
    echo $d
    d=$(date +%F --date "$d + 1 day")
done