コンテンツをより簡単に検査するために、一連の大きな (>500MB) csv ファイルの最初の 5 行を小さなヘッダーに出力しようとしています。
これを行うためにRubyコードを使用していますが、次のように各行に余分な漢字が埋め込まれています:
week_num type ID location total_qty A_qty B_qty count㌀㐀ऀ猀漀爀琀愀戀氀攀ऀ㤀㜀ऀ䐀䔀开伀渀氀礀ऀ㔀㐀㜀㈀ ㌀ऀ㔀㐀㜀㈀ ㌀ऀ ऀ㤀㈀㔀㌀ഀ
44 small 14 A 907859 907859 0 550360㐀ऀ猀漀爀琀愀戀氀攀ऀ㐀㈀ऀ䐀䔀开伀渀氀礀ऀ㌀ ㈀㜀㐀ऀ㌀ ㈀
入力ファイルの最初の数行は次のようになります。
week_num type ID location total_qty A_qty B_qty count
34 small 197 A 547203 547203 0 91253
44 small 14 A 907859 907859 0 550360
41 small 421 A 302174 302174 0 18198
奇妙な文字は、データの 1 行目と 3 行目にあるようです。
私のRubyコードは次のとおりです。
num_lines=ARGV[0]
fh = File.open(file_in,"r")
fw = File.open(file_out,"w")
until (line=fh.gets).nil? or num_lines==0
fw.puts line if outflag
num_lines = num_lines-1
end
何が起こっているのか、行末の文字で単に停止するために何ができるのか考えていますか?
入力/出力ファイルを 16 進数で見る(@ user1934428 による有用な提案)
入力ファイル - 各文字は 2 バイトのようです。
出力ファイル - 各 1 バイト文字の間に NULL (00) があることに注意してください...
ルビー バージョン 1.9.1