Jak mogę obsługiwać duże pliki w Ruby?

Jestem całkiem nowy w programowaniu, więc bądź delikatny. Próbuję wyodrębnić numery IBSN z pliku bazy danych .dat. Napisałem kod, który działa, ale przeszukuje tylko około połowy pliku 180 MB. Jak mogę go dostosować, aby przeszukać cały plik? Lub jak mogę napisać program, który podzieli plik dat na łatwe do zarządzania kawałki?

edytować: Oto mój kod:

export = File.new("resultsfinal.txt","w+")

File.open("bibrec2.dat").each do |line|
  line.scan(/[a]{1}[1234567890xX]{10}\W/) do |x|
    export.puts x
  end
  line.scan(/[a]{1}[1234567890xX]{13}/) do |x|
    export.puts x
  end
end

questionAnswers(6)

yourAnswerToTheQuestion