質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

831閲覧

csvファイルから条件に合うレコードを抽出する

kozica

総合スコア58

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/11/26 00:32

編集2018/11/26 00:42

rubyでcsvファイルから下記条件のレコードを抽出して新規ファイルに保存したいです。
・日付が22日23時〜25日9時までのレコード

カラムは下記のようになっています。

#sample.csv "type","apMac","apFloors","lat","lng","unc","x","y", "seenTime","ssid","clientMac","rssi","manufacturer" 日付は"seenTime"に下記の形で格納 "2018-11-22T04:29:02Z"

csv

1#sample.csv 2"type","apMac","apFloors","lat","lng","unc","x","y","seenTime","ssid","clientMac","rssi","manufacturer" 3"DevicesSeen","11:11:11:22:df:ff",,"","","","","","2018-11-22T04:29:02Z",,"a8:cc:xx:bb:aa:aa","2","LG Electronics (Mobile..." 4"DevicesSeen","ew:cc:cc:bb:ff:ff",,"123.69348579580548","22.44500594148633","49.0",,,"2018-11-22T04:33:20Z",,"cc:22:ee:bb:33:ee","19","KYOCERA" 5"DevicesSeen","ee:cc:bb:99:66:22",,"11.6926993360435","11.44438098678415","49.0",,,"2018-11-25T08:21:05Z",,"ee:aa:cc:55:dd:ff","5","Apple" 6"DevicesSeen","aa:cc:cc:99:66:22",,"98.69342342340435","21.0038098678415","49.0",,,"2018-11-25T08:20:50Z",,"aa:ff:77:ff:ff:bb","7","Apple" 7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

以下のようにしてください。out.csvに出力されます。
エンコーディングはあなたの環境にあわせてください。

Ruby

1require "csv" 2require "time" 3t1 = Time.parse("2018-11-22 23:00:00 JST") 4t2 = Time.parse("2018-11-25 09:00:00 JST") 5 6File.open("out.csv","w") do |outf| 7 File.open("sample.csv") do |inf| 8 lno = 0 9 inf.each_line do |line| 10 lno += 1 11 if lno == 1 12 outf.write(line) 13 next 14 end 15 cols = CSV.parse(line) 16 tm = Time.parse(cols[0][8]) 17 if t1 <= tm && t2 >= tm 18 outf.write(line) 19 end 20 end 21 end 22end 23

投稿2018/11/26 05:45

tatsu99

総合スコア5458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問