Делал на днях я свой проектик, и попал мне в руки большой XML файл. Большой это около 350 Mb, и Ruby + Nokogiri его не кушал, точнее кушал, но после долгих раздумий ругался, что файл большой, и памяти не хватает для его обработки.

Естественно решил я разбить его на большее количество маленьких файлов, дабы скармливать по чуть чуть, и избежать проблем. Но вот вопрос, как?

После недолгого гугления, нашел простую и небольшую утилитку для разбиения. Работает быстро, и делается всё просто.

Ставим через терминал пакет:

sudo apt-get install xml-twig-tools

Далее используем утилитку, следующая команда, разобьет файл large-xml-file.xml на большее количество мелких файлов, по 1000 элементов в каждом.

xml_split -g 1000 large-xml-file.xml

Вот так всё просто. Утилита имеет ещё несколько полезных параметров, о которых вы можете почитать по ссылке ниже. Мне же хватило и этого.

Полное описание параметров