ちょっとしたこと(ファイルの中身の置換)
root
|
hoge01
|
hoge101.html
hoge101.jpg
hoge102.html
hoge103.html
hoge02
|
hoge201.html
hoge202.html
hoge203.html
hoge03
|
hoge301.html
こんな感じでHTMLファイルが置いてあって、
全てのHTMLファイルのタイトルタグの中を一律に変更したくて。
require "fileutils" Dir.glob("C:/root/*/*.html").each{ |file| FileUtils.mv(file, file + ".hoge"); }
置換対象のファイルをブワーっと".html.hoge"という名前に変えます。
で、以下のようなスクリプトを書きました。
f = open(ARGV[0]) while line = f.gets if (line.index("<title>") == nil) puts line elsif puts line.sub("<title>", "<title>ほげほげ ") end end f.close
プログラムの起動引数で渡されたファイルのフルパスを元に
タイトルタグの部分を書き換えます。
title_chage.rbという名前で保存します。
で、こんな風に呼び出し用のリストを作ってブワーって。
ruby title_chage.rb C:/root/hoge01/hoge101.html.hoge > C:/root/hoge01/hoge101.html
ruby title_chage.rb C:/root/hoge01/hoge102.html.hoge > C:/root/hoge01/hoge102.html
ruby title_chage.rb C:/root/hoge01/hoge103.html.hoge > C:/root/hoge01/hoge103.html
".html.hoge"のタイトルタグ部分を置換させたものを
".html"ファイルにリダイレクトさせます。
呼び出し用のリストを作るのも、
Dir::globと正規表現で置換すればサクっとできます。
って、そんなことしてたら、華麗なる一族がはじまっちゃったじゃないですか。