Ruby重命名文件

我有一个脚本,重命名.csv文件中的文件,这个文件工作正常,但我想更多地编辑它,以便它帮助我更多。

场景是我有8,000个图像有一个CID代码,其中一些有CID代码,其中一些有额外的文本,并且是在同一个CID ID下的多个图像,即17263.jpg 17263a.jpg17623b.jpg ,然后我需要使用产品代码重命名CID图像以在网站上工作,并在其后添加相关的abc字母,如果有多个图像,我在.csv列的左侧有文件CID文件但我没有一个简单的方法将两个代码匹配在一起,因为有这么多。

我想知道是否有一种脚本ruby的方法来搜索文件名中的相关cid代码并将其重命名为相关的产品编号?

这是我下载脚本的地方的链接,我已经改变它,所以它适用于新的ruby

http://sofzh.miximages.com/ruby/ppre code15144 a.jpg 15144 inset a.jpg 15144 inset b.jpg 15144 inset c.jpg 15144 inset d.jpg 15144 inset e.jpg 15144 inset f.jpg 15144 inset g.jpg 15144 inset h.jpg 15144 inset i.jpg 15155.jpg 15178.jpg 15233 a.jpg 15233 b.jpg 15233 box.jpg 15270.jpg 15321.jpg 15333 a.jpg 15333.jpg 15414 2010.jpg 15458 – 2632.jpg

对不起本周早些时候的post搞得一团糟

希望你能理解。

谢谢您的帮助。

Ruby文件类有一个rename()方法。 因此,您可以搜索要重命名的文件,然后使用File.rename()方法重命名所有这些文件。

例:

 product_name = "Some String"; id = 0; filenames = Dir.glob("*.jpg") filenames.each do |filename| File.rename(filename, product_name + id.to_s) id += 1 end 

这对你来说有点小窍门。 也许它会有所帮助。 http://rtdptech.com/2010/08/ruby-shell-script-to-rename-files-in-a-folder/

我使用这样的东西快速,因为我想使用rdoc / ri文件做一些例子。 我将一些目录复制到另一个位置,并希望将扩展名从* .ri更改为* .rb,这样我就可以将我的runnable ruby​​代码放入。

这是命令行版本

 $ ruby -e "Dir.glob('*/*.ri').each {|i| File.rename(i, i.gsub('ri', 'rb'))}" 

这是文件版本

 Dir.glob('*/*.ri').each {|i| File.rename(i, i.gsub('ri', 'rb'))}