RubyによるCSVファイルの該当行の取り出し
お世話になります、
Rubyプログラムにて以下のようにCSVファイルをコピー&ペーストしておりますが、
出力結果の1-4行目までの数値は必要ないため、5行目より処理をしたいのです。
良い方法があればご教示いただけないでしょうか。
・RubyProgram
<snip>
p1 = ARGV[0]
# p1:出力ログ対象CSV
file_csv = File.open(p1,"r")
while csv_word = file_csv.gets do
chk_value_log.print csv_word
p csv_word
end
file_csv.close
chk_value_log.close
<snip>
・出力結果
$ ruby -v aaaaa.rb bbbb.csv
ruby 1.8.4 (2005-12-24) [i386-cygwin]
"# name, id, name, IP address,,,,,,,,,,,,,,,,,,,,\r\n"
"# name, id, name, IP address,,,,,,,,,,,,,,,,,,,,\r\n"
"# name, id, name, IP address,,,,,,,,,,,,,,,,,,,,\r\n"
"# name, id, name, IP address,,,,,,,,,,,,,,,,,,,,\r\n"
"1,3,1101,0,32,19,1152,1,4,0,0,0,0,0,0,0,0,1152,1101,51,0,0,0,0\r\n"
"1,4,254,0,7,3,264,1,3,0,0,0,0,0,0,0,0,264,254,10,0,0,0,0\r\n"
"1,1,-1,0,25,66,-1,0,0,0,0,0,0,0,0,0,0,0,0,-1,70,2945,8153\r\n"
お礼
chcp 65001は大変勉強になりました。 ハングル文字の文字化けについては、まだ解決していませんが、 リネーム処理については、 1.Dir.openをDir.foreachに変更して 2.エンコード指定する と、リネームは正常になりました。 変更前 #Dir.open("#{tr_path}") do |dir| # for tr_name in dir 変更後 # foreachに変更し、エンコード指定すると、リネームは正常になった Dir.foreach("#{tr_path}", encoding:"utf-8") do |tr_name| next if tr_name == '.' or tr_name == '..' 未解決ですが、運営から催促されたので、締め切りとします。
補足
ご回答ありがうございます >chcp 65001 やってみましたが、 ・ハングルとrenameのリネーム前後が文字化け ・rename自体もエラー になってしまいました。 Active code page: 65001 D:\rumix>ruby ren4.rb . .. 999-BJ??-hkqwer-20211115.mp4 ren4.rb:62:in `rename': Invalid argument @ rb_file_s_rename - (C:Users/xxxxxx/ Desktop/笘・orean/999-BJ??-hkqwer-20211115.mp4, C:Users/xxxxxx/Desktop/笘ム»orean/笘・orean 259-BJ??-hkqwer-20211115.mp4) (Errno::EINVAL)