voiceなどでファイル名指定に連番を振りたい

C80当選・二日目(土)V-33aです!
夏コミの活動漫画屋にてXNovelなどデモ致します!
iPhoneやiPod Touch、iPad間でBluetooth通信して作品を受け渡す機能もお試し頂けます。
その体験だけでもぜひ。


Tipsです。ボイス付きノベルで、

[voice fn="Alice09_000"]
「あい」

[voice fn="Becky09_000"]
「うえ」

[voice fn="Alice09_000"]
「お」


とある際、「キャラ毎に」「上から順番に番号を振りたい」という要望が。
著名コマンドラインツールでのスクリプト処理をお勧めします。
日本製で日本語強そうなrubyで書くと……(全て一行)

ruby -e 'm=/voice fn="([A-Za-z]+)(\d+)_000"/; i=Hash.new(1); File.read("0_in/ss_09.an").each{ |line| line.match(m); print line.gsub(m,"voice fn=\"\\1\\2_" + ("%03d" % i[$1]) +"\""); i[$1]+=1}' > 1_out/ss_09.an


 ※以下の条件とする。
 入力:0_in/ss_09.an
 出力:1_out/ss_09.an
 カレントディレクトリ:「0_in」の一つ上

 ※rubyはWindowsの場合はインストール必要、MacとLinuxなら入ってます。ターミナル・端末から。

結果はこんな感じ。(色は判りやすいように付けました)

[voice fn="Alice09_001"]
「あい」

[voice fn="Becky09_001"]
「うえ」

[voice fn="Alice09_002"]
「お」


ちょっと解説すると、変数「m」にマッチ正規表現、Hash.new(1)でスタート値が1になるように指定しています。
スポンサーサイト
プロフィール

ふぁみべぇ

Author:ふぁみべぇ
 →@famibee
 →メアド(四角を@に)

カテゴリ
リンク
検索フォーム
最新記事
月別アーカイブ