여기에 내 코드이지만 큰 파일을 영원히 취두 개의 CSV 파일에서 비슷한 줄을 어떻게 찾을 수 있습니까?
require 'rubygems'
require "faster_csv"
fname1 =ARGV[0]
fname2 =ARGV[1]
if ARGV.size!=2
puts "Display common lines in the two files \n Usage : ruby user_in_both_files.rb <file1> <file2> "
exit 0
end
puts "loading the CSV files ..."
file1=FasterCSV.read(fname1, :headers => :first_row)
file2=FasterCSV.read(fname2, :headers => :first_row)
puts "CSV files loaded"
#puts file2[219808].to_s.strip.gsub(/\s+/,'')
lineN1=0
lineN2=0
# count how many common lines
similarLines=0
file1.each do |line1|
lineN1=lineN1+1
#compare line 1 to all line from file 2
lineN2=0
file2.each do |line2|
puts "file1:l#{lineN1}|file2:l#{lineN2}"
lineN2=lineN2+1
if (line1.to_s.strip.gsub(/\s+/,'') == line2.to_s.strip.gsub(/\s+/,''))
puts "file1:l#{line1}|file2:l#{line2}->#{line1}\n"
similarLines=similarLines+1
end
end
end
puts "#{similarLines} similar lines."
영원히 얼마나 오래 되었습니까? 얼마나 거대한 거죠? –
각 csv 파일의 경우 약 300000 줄이며 완료하는 데 30m 이상 걸립니다. – fenec
호스트의 RAM 용량은 얼마입니까? 라인이 얼마나 오래로드되고 있습니까? 코드가 실행되는 OS는 무엇입니까? –