From: nobuyoshi nakada Date: 2005-10-14T18:45:28+09:00 Subject: [ruby-list:41291] Re: 条件に合う見出しの内容だけを抽出 なかだです。 At Fri, 14 Oct 2005 17:59:12 +0900, isawa_kz wrote in [ruby-list:41284]: > 以下のファイル(data.xt)のように、見出し(Title)と内容(content)を持つ > ファイルから、条件に合う見出しの内容だけを抽出しようと考えています。 インデントによって区別するというわけではなくて、"Title-"で始ま る行を区切りにする、ということでいいでしょうか。 $ cat ext.rb #!/usr/bin/ruby -n BEGIN { Patterns = ARGV.collect {|s| /^\s*Title-#{s}/} ARGV.clear } idx ||= 0 if (match_beg = Patterns[idx] =~ $_ && !Patterns[idx += 1])... (match_end = /^\s*Title-/ =~ $_) and !match_beg and !match_end print $_ end $ ruby ext.rb 1 A < data.txt content1 $ ruby ext.rb 1 B < data.txt content2 content3 $ ruby ext.rb 2 A < data.txt content4 content5 $ ruby ext.rb 2 B < data.txt content6 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦