• 締切済み

RubyでCSVファイルから検索するには??

ruby初心者です。 よろしくお願いします。 以下のようなcsvファイルからユーザーの入力内容をキーに 該当する行を検索して表示させるというような処理を実行したいです。 name,email,tel andy,andy@yahoo.co.jp,090xxxxxxxx bob,bob@yahoo.co.jp,090xxxxxxxx amy,amy@yahoo.co.jp,090xxxxxxxx 入力例:amy 出力:amy,amy@yahoo.co.jp,090xxxxxxxx (該当する行を全て出力させたい) ご教授よろしくお願い致します。 環境:Win7、ruby2.0

みんなの回答

回答No.2

-----------csv.rb------------- require "csv" print "Enter the key :" key = (gets.to_s).chomp CSV.open("test.csv","r") do |csv| csv.each do |row| if row[0] == key print row end end end ------------------------------ ----------test.csv------------ name,email,tel andy,andy@yahoo.co.jp,090xxxxxxxx bob,bob@yahoo.co.jp,090xxxxxxxx amy,amy@yahoo.co.jp,090xxxxxxxx ------------------------------ 動作確認:ruby 2.0.0p247 (2013-06-27) [i386-mingw32] ※ Ruby 1.8系だとCSVメソッドの仕様が変更になっているので注意。 あと、文字コード認識も(ruby 1.8系は)甘いので、Ruby 2.0系じゃないと動かないです。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

該当する行とは?name欄が一致すると言うことでいいですか? ruby -nle "puts $_ if /^amy,/" filename.txt Windows標準機能で、 findstr /b "amy," filename.txt でもOK。