[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1389) [ruby]節見出しのインクリメント
勉強部屋の#8893にレスしたので、メモ。
節見出しに自動ナンバリングするとき
こんなテキストがあったとして
第1章 ああああああ
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
第2章 ああああああ
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
第3章 ああああああ
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
こう書けば
#! /usr/bin/ruby -Ks
while line = ARGF.gets
if line =~ /^第(\d+)章 / then
chap_num = $1#章番号をgetする
sec_num = 0#節番号の初期化
end
line.sub!(/^●/) {"●#{chap_num}-" + (sec_num += 1).to_s}#
print line
end
こうなります。
第1章 ああああああ
●1-1節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●1-2節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
第2章 ああああああ
●2-1節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●2-2節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●2-3節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●2-4節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
第3章 ああああああ
●3-1節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●3-2節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
●3-3節みだし
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー
ダミーダミーダミーダミーダミーダミーダミーダミーダミー