Rubyでファイルを読み込み1行ずつ表示する


スポンサーリンク

Rubyを使ってファイルの文字列を読み込み、1行ずつ表示してみます。

読み込み対象のファイルはこちらです。

f:id:sho322:20140916144309j:plain

やってみたことは以下のとおりです。


全文を表示する

# encoding: utf-8

File.open 'C:\tmp\test.txt' do |file|
  puts file.read
end

1行ずつ表示する

# encoding: utf-8

File.open('C:\tmp\test.txt', "r:utf-8" ) do |f|
  while line  = f.gets

  	if line.include?("洪庵")
      puts line
	end
  end
end

each_lineを使って1行ずつ読み込む

# encoding: utf-8

File.open('C:\tmp\test.txt', 'r:utf-8') do |f|
  f.each_line do |line|
    if line.include?("")
      puts line
    end
  end
end

上の例だと、「人」という文字を含む行だけ表示することができる。

 世のために尽くした人の一生ほど、美しいものはない。
 ここでは、特に美しい生涯を送った人について語りたい。
 この人は、江戸末期に生まれた。
 あふれるほどの実力がありながら、しかも他人のために生き続けた。そういう生涯は、はるかな山河のように、実に美しく思えるのである。
 といって、洪庵は変人ではなかった。どの村やどの町内にもいそうな、ごく普通のおだやかな人がらの人だった。
 病人には親切で、その心はいつも愛に満ちていた。

参考)
「二十一世紀に生きる君たちへ」「洪庵のたいまつ」全文収録しました。: JIROの独断的日記ココログ版