作者: dune
日時: 2002/3/04(23:20)
極悪です。発言がないのでゴミ撒き。

>キャイン! V: P: B: L: ' が行頭にある行を無視できる
>特別仕様を密かに隠してくださいませんか。

これは某氏の要望で、例えば

{{{
元祿龍輯重光大荒蕗律中黄鍾月念有四★台宗
'ほぇ〜
沙門秀雲筆于叡岫西塔東溪螢雪軒之寓居。
B:上,1記
P:723a
維摩經疏記卷上。
}}}

のような入力があったら、

{{{
元祿龍輯重光大荒蕗律中黄鍾月念有四★台宗
沙門秀雲筆于叡岫西塔東溪螢雪軒之寓居。
維摩經疏記卷上。
}}}

という出力を出してほしいってこと。つまり、'ほぇ〜 の行は
「'」で始まっているので削除,B:上,1記 の行も B: で始まって
いるから削除。P:... も同じ。

これは簡単で、

while(<>){
    next if m/^[VPBL]:|^'/;
    print;
}

というスクリプトを書けばいい。ところで正規表現の中に | を書
くとスピードが落ちるという話が perlfaq かどこかに書いてあっ
たと思う。どれくらい違うか試してみる。

%cat -n a.pl
     1  while(<>){
     2      next if m/^[VPBL]:|^'/;
     3      print;
     4  }

%timer "perl a.pl D:\DATA\Tendai\4Data\TXK\止觀弘決.TXK >nul"
0.500000 sec
%cat -n b.pl
     1  while(<>){
     2      next if m/^[VPBL]:/ || m/^'/;
     3      print;
     4  }

%timer "perl b.pl D:\DATA\Tendai\4Data\TXK\止觀弘決.TXK >nul"
0.281000 sec
%

ここで timer はコマンドの実行時間を測るコマンド(小数点以下
6桁まで出ているが、もちろんそんな精度はない)で、         
止觀弘決.TXK は 1MB のファイル。ふむ、だいたい 40% くらいの
時短になってるようです。でめたしでめたし。

#本当にゴミでした。
-- 
FZH01112@..., http://www1.u-netsurf.ne.jp/~dune/