シェルスクリプトで日付を列挙する。¶
仕事で引きついた運用環境に、コピペで一日ずつ増やして対応するバッチがあったので、簡単なのを書いた。GNU dateコマンドおよびbashであることが前提。
#!/bin/bash
STARTDATE=20111226
ENDDATE=20120105
DELTA=$((($(date -d "$ENDDATE" +%s)-$(date -d "$STARTDATE" +%s))/86400))
for i in $(seq 0 $DELTA)
do
echo $(date -d "$STARTDATE $i day" +%Y%m%d)
done
exit 0
実行結果
$ ./datelist.sh
20111226
20111227
20111228
20111229
20111230
20111231
20120101
20120102
20120103
20120104
20120105
これで一歩コピペ地獄から抜けられた。