Como posso lidar com arquivos grandes em Ruby?

Eu sou muito novo em programação, então seja gentil. Eu estou tentando extrair números IBSN de um arquivo .dat de banco de dados de biblioteca. Eu escrevi o código que funciona, mas ele está pesquisando apenas cerca de metade do arquivo de 180MB. Como posso ajustá-lo para pesquisar o arquivo inteiro? Ou como posso escrever um programa que dividirá o arquivo dat em partes gerenciáveis?

editar: Aqui está meu código:

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