トップ «前の日記(2008/06/10 (火) ) 最新 次の日記(2008/06/12 (木) )» 編集 RSS feed

HsbtDiary


2008/06/11 (水) [長年日記]

[tDiary]TDIARY_MAGIC の値を一括置換

昨日、たださんがコミットした自動 UTF-8 化コードは tDiary のデータファイルの TDIARY_MAGIC を見て変換の必要性を判断している。これを止めるには

@options['stop_migrate_01'] = true

とかを tdiary.conf に書けばいいんだけど、データファイルの方の TDIARY_MAGIC を一括置換して対応してしまった。一括置換はこんな感じ

perl -i -w -p -e 's/TDIARY2.00.00/TDIARY2.01.00/g' **/*.td2

他にも tdc,tdr も実行する必要がある。

追記

ruby でやるならこんな感じ?

ruby -i -p -e '$_.gsub!(/TDIARY2\.00\.00/, "TDIARY2.01.00")' **/*.td2

Ruby レシピブックに書いてある通りなのでたぶん動く。

[sed]文字列置換は s/foo/bar/g

何で文字列置換を perl でやったかというと、文字列置換は高専で習った

sed 's/foo/bar/g'

みたいなのが頭の中にあるからなんだよねえ。

こういう形式で ruby でも出来るんだっけ?

本日のツッコミ(全6件) [ツッコミを入れる]
# ただただし (2008/06/11 (水) 08:44)

Perlかよ!(お約束)

# しばた (2008/06/11 (水) 20:36)

期待通りのツッコミありがとうございました!

# まちゅ (2008/06/11 (水) 22:50)

$_は無くてもよさそうですね。前にやりました。<br>http://www.machu.jp/diary/20070224.html#p01

# eban (2008/06/12 (木) 01:49)

最近のGNU sedならsed -i 's/foo/bar/g' でok

# しばた (2008/06/12 (木) 06:08)

>まちゅさん<br>お、ホントだ。ありがとうございます。<br><br>>ebanさん<br>man sed しても書いてなかったので気がつかなかった…。確かに -i で上書きされますね。ありがとうございます。

# きむら(K) (2008/06/12 (木) 10:00)

manじゃなくてinfo見ないとダメっす。