У меня есть файлы CSV, которые имеют несколько столбцов, которые сортируются. Например, у меня могут быть такие строки:
19980102,,PLXS,10032,Q,A,,,15.12500,15.00000,15.12500,2
19980105,,PLXS,10032,Q,A,,,14.93750,14.75000,14.93750,2
19980106,,PLXS,10032,Q,A,,,14.56250,14.56250,14.87500,2
20111222,,PCP,63830,N,A,,,164.07001,164.09000,164.12000,1
20111223,,PCP,63830,N,A,,,164.53000,164.53000,164.55000,1
20111227,,PCP,63830,N,A,,,165.69000,165.61000,165.64000,1
Я хотел бы разделить файл на основе третьего столбца, например. помещать записи PLXS и PCP в свои собственные файлы, называемые PLXS.csv и PCP.csv. Поскольку файл предварительно отсортирован, все записи PLXS находятся перед входами PCP и т.д.
Я вообще делаю такие вещи, как это на С++, потому что тот язык, который я знаю лучше всего, но в этом случае мой входной CSV файл имеет несколько гигабайт и слишком большой для загрузки в память на С++.
Может кто-нибудь показать, как это можно сделать? Решения Perl/Python/php/ bash все в порядке, они просто должны иметь возможность обрабатывать огромный файл без чрезмерного использования памяти.