¿Cómo puedo manejar archivos grandes en Ruby?

Soy bastante nuevo en la programación, así que sé amable. Estoy intentando extraer números IBSN de un archivo de base de datos de biblioteca .dat. He escrito un código que funciona, pero solo está buscando en aproximadamente la mitad del archivo de 180MB. ¿Cómo puedo ajustarlo para buscar todo el archivo? O, ¿cómo puedo escribir un programa para dividir el archivo de datos en partes manejables?

editar: Aquí está mi 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

Respuestas a la pregunta(6)

Su respuesta a la pregunta