2011-08-12 16 views
3

.csvファイルの名前を変更するスクリプトがありますが、このファイルはうまく機能しますが、少し編集してさらに役立ちます。私はそれらのいくつかはCIDコードを持っているCIDコードを持っている8,000のイメージがあるルビーでファイル名を変更する

シナリオがされ、それらのいくつかはそれで余分なテキストを持っているし、同じCIDのIDで複数の画像であり、すなわち17263.jpg17263a.jpg17623b.jpg、私はその後に必要ウェブサイト上で動作するように商品コードでCID画像の名前を変更すると同時に、またはbまたは c文字を追加します。複数の画像がある場合は、左のファイルにCIDファイルがあります。 .csvの列が、私は2つのコードを一緒に一致させる簡単な方法がありません。

ファイル名の中に関連するcidコードを検索し、それを関連する製品番号に変更する方法があったのでしょうか?

はここで、それは新しいルビー

http://roguepenguin.net/PFID2SKU/

で動作しますので、私はそれを変更したファイル名の一部は、以下の私は、スクリプトをダウンロードした場所へのリンクリストされているだけで5桁のコードとABが必要またはcなどを柱と台無し今週初めのため

15144 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 

申し訳ありませんが、本製品の複数の画像が存在する場合

あなたが理解できることを願っています。

ありがとうございました。

+0

です。コードのスニペットは1000語に相当します。 – miku

+1

これは、あまりにも多くの情報が答えることができない方法です。おそらく 'File.rename'を開始点として使用することができます。 – tadman

+0

begin File.open(csv_file_name、 "r +")do | file | file.each_line do | line | tokens = line.split( '、') if tokens.size == 2 pfid_name =トークン[0] .strip sku_name =トークン[1]。ストリップ –

答えて

11

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 
1

ここではあなたのために少しちらほらです。多分それが助けになるでしょう。 http://rtdptech.com/2010/08/ruby-shell-script-to-rename-files-in-a-folder/

私は少し例を作るためにRDOC/RIファイル を使用していたので、私は急ごしらえのために、このようなものを使用。私は別の場所にいくつかのディレクトリにコピーし、私は私の実行可能なRubyコードを置くことができるように* .RIへ* .rbのから拡張子を変更するようだった。

ここでは、コマンドラインバージョンが

$ 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'))}