Расщепление здесь происходит быстрее, чем регулярное. С таким большим файлом это может иметь заметное значение.
Кроме того, похоже, что вам нужно избегать этих двойных кавычек: line.split("\"id\" : ")
> puts Benchmark.measure{line.split("\"id\" : ").last.delete('}').delete(' ')}
0.000000 0.000000 0.000000 ( 0.000020)
> puts Benchmark.measure{line.match(/\s(\d+)\s/)[1]}
0.000000 0.000000 0.000000 ( 0.000043)
Обновление
Еще быстрее, используйте расщепление до конца:
> puts Benchmark.measure{line.split("\"id\" : ").last.split(' ').first }
0.000000 0.000000 0.000000 ( 0.000008)
Редактировать
Хотя, как Стефан упоминает в своем комментарии, похоже, что ваш файл BSON (MongoDB), а не JSON. Существует монго самоцвет .