質問: 複数のcsvファイルを1つの新しいcsvファイルにしてidが重複するものは一つにまとめるというrubyファイルを作成したいのですが どのようにすればいいのかさっぱりわかりません。。。 やりたいこと 1.csv | id | fruits | price | | --- | --- | --- | | 1 | みかん | 100 | | 2 | りんご | 150 | | 3 | メロン | 300 | 2.csv | id | fruits | price | | --- | --- | --- | | 4 | すいか | 300 | | 5 | いちじく | 100 | | 1 | みかん | 100 | 3.csv | id | fruits | price | | --- | --- | --- | | 2 | りんご | 150 | | 5 | いちじく | 100 | | 6 | びわ | 100 | と3っつのcsvファイルが合ったとして 上記をrubyで結合させて下記の様なファイルを生成したい。 new.csv | id | fruits | price | | --- | --- | --- | | 1 | みかん | 100 | | 2 | りんご | 150 | | 3 | メロン | 300 | | 4 | すいか | 300 | | 5 | いちじく | 100 | | 6 | びわ | 100 | ご教授お願い致します。
回答: CSVの構造も同じですので、 arrayに入れ込んでuniq!して、 出力してみては こんな感じです。 require 'csv' csv_data = CSV.read('1.csv', headers: false) csv_data += CSV.read('2.csv', headers: false) csv_data += CSV.read('3.csv', headers: false) csv_data.uniq! test = CSV.open('out.csv','w') for data in csv_data test.puts data end test.close