From: Koji Arai Date: 2002-11-05T04:19:04+09:00 Subject: [ruby-list:36356] Re: はじめまして 新井です。 In message "[ruby-list:36350] Re: はじめまして" on 04 Nov 2002 23:08:13 +0900, KAWAGOE Hitoshi wrote: > 具体的には,各レコードがタブ区切りのテキスト, > | A1 B1 C1 Str0 E1 F1 G1 > | A2 B2 C2 Int1 E2 F2 G2 > | A3 B3 C3 Int2 E3 F3 G3 > | : : : : : : : #以下3行単位で全72行 > というパターンのログがあるとして,このなかで必要な要素 > は4つ目の列「Str0, Int1, Int2」です. > > 目指すのは,上のログをコンマ区切りのテキストに変換して, > | Str0,Int1,Int2 > | Str0,Int1,Int2 > | : : : #以下全24行 > という形式にできたら良いなと思っています. たとえば、こんな? while line = gets line = line.split(/\t/)[3] if $. % 3 == 0 print line, "\n" else print line, "," end end こんなんでもよいかな? ary = [] while line = gets ary.push line.split(/\t/)[3] if ary.size == 3 puts ary.join(",") ary = [] end end if not ary.empty? puts ary.join(",") # これいるかな? end 行数が多いとメモリ喰っちゃうけどこういう方法も ときには良いかも。 ary = [] ARGF.each {|line| ary.push line.split(/\t/)[3] } while not ary.empty? puts ary.slice!(0,3).join(",") end -- 新井康司 (Koji Arai)