ファイルの先頭の2行を削除したいのと正規表現を使ってcsv形式のデータを1行につき1単語ずつに振り分けたいと考えています。
まず、「ファイルの先頭のn行を削除する」というサンプルコードがあったので使おうとしたのですが、それのどこを変更すればいいのかわかりませんでした。
自分は「sample1.csv」というファイルの先頭から「2行」を削除したいと思ってます。
初歩的な質問ですがよろしくお願いします。
ruby
1require "tempfile" 2 3def remove_head(file,lines) 4 temp=Tempfile.new("mytemp",File.dirname(file)) 5 open(file) do |io| 6 lines.times{io.gets} 7 while line=io.gets 8 temp.write(line) 9 end 10 end 11 temp.close 12 mode=File.stat(fule).mode 13 File.rename(temp.path,file) 14 File.chmod(mode,file) 15end 16 17remove_head(ARGV[0],ARGV[1].to_i)
次に正規表現を使用して
Polyuria/ polydipsia,Physiological,Exercise,, Polyuria/ polydipsia,Physiological,High environmental temperature,, Polyuria/ polydipsia,Diet,Increased salt intake,,
このようなcsv形式のデータを
Polyuria/ polydipsia Physiological Exercise Polyuria/ polydipsia Physiological High environmental temperature Polyuria/ polydipsia Diet Increased salt intake
このようにしたいと思ってます。
sublimetextで正規表現を使って置換したときは
「,([A-Z])」で検索して、「\n$1」に置換しました。
これをruby上で行いたいのですが、どうすればいいかわかりません。
ruby
1diagwd=Array.new 2 3File.open("sample1.csv") {|file| 4 while l=file.gets 5 diagwd << [l.sub(/,([A-Z])/){\n$1}] 6 diagwd.compact! 7 end 8}
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。