「"何月何日から何月何日まで"という感じで日付を範囲指定して様々なコマンドを実行したい」ということが良くあるので、bashで以下のような簡単な関数を作ってみました。
.bashrc とか .bash_profile あたりに書いておけば動きます。
あとrubyが必要です。
dateseq() {
FROMDATE=`echo "$1" | sed -e 's/-/,/g'`
TODATE=`echo "$2" | sed -e 's/-/,/g'`
ruby -rdate -e "(Date.new(${FROMDATE})..Date.new(${TODATE})).each{|d| puts d.to_s }"
}
以下のように実行します。
$ dateseq 2013-03-01 2013-03-05
2013-03-01
2013-03-02
2013-03-03
2013-03-04
2013-03-05
for文に渡して、指定した日付分、コマンドを実行することができます。
$ for d in `dateseq 2013-03-01 2013-03-05`; do echo 'Today is '$d; done
Today is 2013-03-01
Today is 2013-03-02
Today is 2013-03-03
Today is 2013-03-04
Today is 2013-03-05
やってみて思ったけど、どうせruby呼び出すんだったら独立したコマンドにした方がよかったですね^^;
その方が拡張しやすいし。
あとで考えます。