ruby重命名文件,具有多种字符串格式

时间:2016-10-31 11:47:08

标签: ruby

我在一个文件夹中有如下文件。

helloworld
homework
server.name
server1.location.name

还有很多像上面那样。我想在“。”之前移动一些带有第一个字符串匹配的文件。

所有文件名都是distint。在bash中,我们可以通过简单地使用*来实现。但在红宝石中,它不起作用。

2 个答案:

答案 0 :(得分:2)

您可以使用Dir#glob遍历文件 从描述:“请注意,此模式不是正则表达式,它更接近于shell glob”

Dir.glob(pattern) each do |f|
#do something with f
end

其中pattern可以是“*”或“* .txt”。 您需要提供有关搜索的更多信息。

答案 1 :(得分:1)

我并没有完全得到你想做的事情,但作为一个例子,你以这种方式重命名当前目录中的所有文件。

2.3.1 :001 > Dir['*']
 => ["helloworld", "homework", "server.name", "server1.location.name"] 
2.3.1 :002 > Dir['*'].each { |filename| File.rename(filename, filename.split('.').first) }
 => ["helloworld", "homework", "server.name", "server1.location.name"] 
2.3.1 :003 > Dir['*']
 => ["helloworld", "homework", "server", "server1"]