Ruby on rails 在Ruby on Rails中将_filename.xls的yyyyddm_rest_更改为_filename.xls的YYYYMMDD_rest_

Ruby on rails 在Ruby on Rails中将_filename.xls的yyyyddm_rest_更改为_filename.xls的YYYYMMDD_rest_,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有大量excel文件,格式为:YYYYDDMM\u rest\u of_filename.xls 我如何使用ruby将它们全部更改为YYYYMMDD_rest_of_filename.xls的更少命令?逐个文件并在文件名上运行regexp 文件名组的YYYY、DD、MM、\u rest\u 一旦有了组,就可以很容易地连接字符串 并使用file类中的rename函数重命名文件。只需切换它们: str = "20103109_rest_of_filename.xls" str[4,2], str

我有大量excel文件,格式为:YYYYDDMM\u rest\u of_filename.xls


我如何使用ruby将它们全部更改为YYYYMMDD_rest_of_filename.xls的更少命令?

逐个文件并在文件名上运行regexp 文件名组的YYYY、DD、MM、\u rest\u

一旦有了组,就可以很容易地连接字符串 并使用file类中的rename函数重命名文件。

只需切换它们:

str = "20103109_rest_of_filename.xls"

str[4,2], str[6,2] = str[6,2], str[4,2]
p str #=> "20100931_rest_of_filename.xls" 

使用正则表达式:

file_name = '20113009_report.xls'
file_name.sub!(/(\d{4})(\d{2})(\d{2})(.+)/, '\1\3\2\4' )
p file_name  # "20110930_report.xls"