回答編集履歴

1

内容修正

2018/04/19 05:02

投稿

kazto
kazto

スコア7196

test CHANGED
@@ -2,40 +2,42 @@
2
2
 
3
3
 
4
4
 
5
+ 追記:
6
+
7
+ 入力をタブ区切りに、出力をCSV形式にしました。
8
+
5
9
  ```Ruby
6
10
 
7
- irb(main):001:0> data = File.open("sample.csv").readlines.map{|v| v.chomp.split(",")}
11
+ data = File.open("sample.bl6").readlines.map{|v| v.chomp.split("\t")}
8
12
 
9
- => [["1|abc2|1", "1", "2"], ["1|abc2|3", "2", "3"], ["1|abc2|2", "3", "3"], ["1|abc1|1", "4", "4"], ["1|abc1|2", "5", "2"], ["2|abd1|2", "7
13
+ data.sort!{|a, b| a[0] <=> b[0]}
10
14
 
11
- , "5"], ["2|abd1|1", "3", "3"], ["3|acd2|1", "4", "2"]]
12
15
 
13
- irb(main):002:0> data.sort{|a, b| a[0] <=> b[0]}
14
16
 
15
- => [["1|abc1|1", "4", "4"], ["1|abc1|2", "5", "2"], ["1|abc2|1", "1", "2"], ["1|abc2|2", "3", "3"], ["1|abc2|3", "2", "3"], ["2|abd1|1", "3
17
+ # CSVクラスを使わず
16
18
 
17
- , "3"], ["2|abd1|2", "7", "5"], ["3|acd2|1", "4", "2"]]
19
+ File.open("result.csv", "w") do |fh|
18
20
 
19
- irb(main):003:0> require 'pp'
21
+ data.each do |line|
20
22
 
21
- => true
23
+ fh.puts line.join(",")
22
24
 
23
- irb(main):004:0> pp data.sort{|a, b| a[0] <=> b[0]}
25
+ end
24
26
 
25
- [["1|abc1|1", "4", "4"],
27
+ end
26
28
 
27
- ["1|abc1|2", "5", "2"],
28
29
 
29
- ["1|abc2|1", "1", "2"],
30
30
 
31
- ["1|abc2|2", "3", "3"],
31
+ # CSVクラス使って。どちらでもお好きな方で。
32
32
 
33
- ["1|abc2|3", "2", "3"],
33
+ CSV.open("result.csv","w") do |fh|
34
34
 
35
- ["2|abd1|1", "3", "3"],
35
+ data.each do |line|
36
36
 
37
- ["2|abd1|2", "7", "5"],
37
+ fh << line
38
38
 
39
- ["3|acd2|1", "4", "2"]]
39
+ end
40
+
41
+ end
40
42
 
41
43
  ```