Ruby Date Range

Ruby的Range功能强大无比,我们可以简单的使用:

(1..10).each{|i| puts i}

打印出:
1
2
...
10
对于字符串我们也可以:

("hello" .. "world").each{|word| puts word}

更加强大的是对于日期,ruby同样支持rang

require 'date'
date_begin = Date.parse '2010-09-01'
date_end = Date.parse '2010-10-07'
(date_begin .. date_end).each{|date| puts date}

这个很有用,我今天就遇到了一个问题使用了date的Range,轻松搞定。
这个问题是:要处理的文件都是文件名为保存时的日期加后缀,比如:
20100910-00001,现在我要处理从2010-09-01到2010-10-07的所有文件,
shell有seq,这个只能搞定通过使用seq 1 10做1..10这样的事情,对于日期
搞不定,也不想自己搞那么一个数组。
于是就想到了强大的Ruby的Range来搞定它,发现日期果然支持Range操作,于是开搞:
代码类似如下:
date_seq.rb

require 'date'
date_begin = Date.parse '2010-09-01'
date_end = Date.parse '2010-10-07'
(date_begin .. date_end).each{|date| puts date.to_s.gsub(/-/,"")}


while read date; do
for file in `ls $date-*`; do
#process the file
done
done < ruby date_seq.rb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值