Ruby on rails 用Ruby编写脚本,将所有*.htm文件重命名为*.html

Ruby on rails 用Ruby编写脚本,将所有*.htm文件重命名为*.html,ruby-on-rails,ruby,Ruby On Rails,Ruby,我需要用Ruby编写一个脚本,在给定的时间内将所有*.htm文件重命名为*.html 目录 有人给了我一个剧本,但少了一些片段 我需要用适当的方法名来表示“METHOD”,用适当的方法名来表示“REGEX” 正则表达式,以匹配以.htm结尾的所有文件 Dir.METHOD("*.htm").each do |html_file| FileUtils.METHOD html_file, "#{html_file.METHOD(/REGEX/,'.html')}" end 有人知道我应该用什么

我需要用Ruby编写一个脚本,在给定的时间内将所有*.htm文件重命名为*.html 目录

有人给了我一个剧本,但少了一些片段

我需要用适当的方法名来表示“METHOD”,用适当的方法名来表示“REGEX” 正则表达式,以匹配以
.htm
结尾的所有文件

Dir.METHOD("*.htm").each do |html_file|
  FileUtils.METHOD html_file, "#{html_file.METHOD(/REGEX/,'.html')}"
end

有人知道我应该用什么来替换“METHOD”和“REGEX”吗?

下面是我是如何做到的,尽管它没有使用FileUtils方法,在课程中讨论之前,我跳过了前面的步骤并进行了字符串操作

Dir.glob("*.htm") {|old_filename|             #Save file names w/ .htm to old_
   tmp_filename = old_filename.slice(0..-5)   #Remove (.htm) the file extension
   new_filename = tmp_filename + '.html'      #Append the .html extension
   puts new_filename                          #Display renamed file names
}

您是否研究过有关
Dir
FileUtils
的文档?您应该浏览这些Ruby类的方法,并确定什么是有意义的。这些文档都是在线的。例如,只需在“ruby FileUtils”上进行谷歌搜索。他们为你做了大部分工作。如果你尝试过具体的东西,那么请展示你尝试过的东西,并问一个更具体的问题。嗨@Louger我阅读了所有关于“Dir”和“FileUtils”的文档,没有任何东西可以帮助我。为了更开放一点,我在coursera做了一个课程计划,我看了相关的视频并阅读了补充文件,我已经完成了所有的任务。现在我在练习测验中结巴了,他们给了我代码,我必须做适当的修改,我尝试在
Dir
&
FileUtils
但它不起作用。但就我所知,我确信应该用“Dir”和“FileUtils”替换的方法是可以的(
dirglob
&
FileUtils mv
),我相信应该在
{html_file.METHOD(/REGEX/,'.html')}
这一部分中进行更改。如果你有一个新的、不同的问题,你需要单独问这个问题。如果您将其添加为注释,它将丢失。如果你确实为这个特定的问题尝试了一些东西,那么你应该展示你已经尝试了什么(编辑问题),这样你就可以得到一个特定的回答。但是,同样的,只有当它是同一个问题的一部分,不会使已经给出的答案无效。嗨,谢谢你对回答我的问题感兴趣,顺便说一句,我尝试了你的代码,我确实得到一些语法错误。我试图找出错误,但我没有发现任何错误。我还附上了错误的截图供您考虑。[@Shaahin该链接给了我一个HTTP 404错误。不过,我怀疑您没有包含文件实用程序。您需要
要求'fileutils'
才能使用
fileutils
。您好,谢谢我们所有的回答,我从您的回复中得到了正确答案。谢谢大家
Dir.glob("*.htm").each do |html_file|  
  FileUtils.mv html_file, "#{html_file.sub(/.htm/,'.html')}"
end
Dir.glob("*.htm") {|old_filename|             #Save file names w/ .htm to old_
   tmp_filename = old_filename.slice(0..-5)   #Remove (.htm) the file extension
   new_filename = tmp_filename + '.html'      #Append the .html extension
   puts new_filename                          #Display renamed file names
}