3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

bashで指定した範囲の日付を表示するだけの関数

Posted at

「"何月何日から何月何日まで"という感じで日付を範囲指定して様々なコマンドを実行したい」ということが良くあるので、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呼び出すんだったら独立したコマンドにした方がよかったですね^^;
その方が拡張しやすいし。

あとで考えます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?