ビットの海

ゆるふわソフトウェアエンジニアしゃぜのブログ

bashで yyyy-mm-dd の連続生成

  • GNU dateを使用
  • なんかもうちょっとスッキリと書けないものか...。
#!/bin/bash

START_DATE="20201224"
END_DATE="20210103"
DATE_CMD="gdate"

for (( DATE=${START_DATE} ; ${DATE} <= ${END_DATE} ; DATE=`${DATE_CMD} -d "${DATE} 1 day" '+%Y%m%d'` )) ; do
  TARGET_DATE=`echo ${DATE:0:4}-${DATE:4:2}-${DATE:6:2}`
  echo ${TARGET_DATE}
done

実行結果

2020-12-24
2020-12-25
2020-12-26
2020-12-27
2020-12-28
2020-12-29
2020-12-30
2020-12-31
2021-01-01
2021-01-02
2021-01-03