我在一个文件夹中有如下文件。
helloworld
homework
server.name
server1.location.name
还有很多像上面那样。我想在“。”之前移动一些带有第一个字符串匹配的文件。
所有文件名都是distint。在bash中,我们可以通过简单地使用*来实现。但在红宝石中,它不起作用。
答案 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"]