У меня есть файл CSV с некоторыми данными транзакций. Скажем, дата, объем, цена и направление (продажа / покупка). Кроме того, есть идентификатор для каждой транзакции, и в каждой закрывающей транзакции (более новой) есть ссылка на соответствующую транзакцию. Классическая ссылка на базу данных.
Теперь я хочу сделать немного статистики и нарисовать несколько графиков. Это может быть сделано через Octave, LaTeX/TikZ, Gnuplot или что-то еще. Для этого мне нужно купить и продать цену в один ряд. Моя мысль состояла в том, чтобы предварительно обработать CSV, чтобы получить другой CSV, содержащий необходимую информацию, а затем сделать статистику. В конце я хотел бы иметь решение, основанное на сценариях, а не на электронной таблице, поскольку данные могут часто меняться (экспортируются из онлайн-базы данных).
Мое реальное решение (см. Http://paste.ubuntu.com/6262822/ ) - это скрипт bash, который построчно анализирует CSV и проверяет, существует ли соответствующая транзакция. Если найдено, новая строка записывается в CSV назначения. Если не напечатано предупреждение.
Плохие новости: для каждой строки в исходном файле я должен прочитать весь файл несколько раз. Это вызывает длительное время работы 10 секунд для 300 строк. Поскольку номер строки может скоро увеличиться (> 10 000 строк), это не идеально. Я знаю, что в скрипте нужно открыть много оболочек, которые могут вызвать проблемы с производительностью.
Теперь мои вопросы:
- Является ли bash/awk/sed/.... хорошим способом сделать что-то?
- Должен ли я сначала импортировать все данные в "настоящую" локальную базу данных для использования SQL?
- Есть ли простой способ добиться желаемых результатов?