前提・実現したいこと
Rubyで入力されたファイルを読み出し1行ずつ比較して別のファイルに書き出したいですがうまくいきません。どうやって1行ずつ読み込んで比較したらいいのかわかりません。
例えば入力ファイルを
aaa bbb ccc aaa ccc bbb aaaa
とすると、一行目と二行目を比べて一列目(ここではaaa)が同じだったら後者を消すという動作をしていきたいです。
理想↓
aaa bbb ccc bbb aaaa
発生している問題・エラーメッセージ
test.rb:9:in `block (3 levels) in <main>': private method `readlines' called for "aaa bbb ccc\n":String (NoMethodError) from test.rb:7:in `each' from test.rb:7:in `block (2 levels) in <main>' from test.rb:6:in `open' from test.rb:6:in `block in <main>' from test.rb:5:in `open' from test.rb:5:in `<main>'
該当のソースコード
Ruby
1# -*- coding: utf-8 -*- 2line2=[] 3s=[] 4line3=[] 5open("test.txt", "r:UTF-8"){|file| 6 open("./test2/test2.txt", "w:UTF-8"){|file2| 7 file.each{|line| 8 line3 = line 9 s = line3.readlines 10 if s[0] != line2[0] then 11 line2[0] = s[0] 12 file2.puts line 13 else 14 end 15 } 16 } 17}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/02 07:08