Я думаю, что слишком остро отреагировал на сложность этого. Следующий код в Elixir разбивает файл CSV на правильный список списков:
File.read!("sample.csv")
|> String.split("\r\n")
|> Enum.map(&String.split(&1, ",", parts: 5))
Результат:
[
["25/04/2017", "23:36:09", "unknown", "+123456789",
"Сириус конторка"],
["25/04/2017", "23:36:15", "unknown", "+123456789",
"Главный из офис"],
["26/04/2017", "08:15:55", "unknown", "+123456789",
"Напишіть будь ласка номер Житло-Капітал, за яким повідомляють:\n- суму коштів до повернення/доплати\n- комісію за управління інвестиційними коштами"],
["26/04/2017", "08:17:44", "unknown", "+123456789", "374-03-08"],
["26/04/2017", "08:29:24", "unknown", "+123456789",
"Для тех, кто не был на собрании. Вчера мы:\n\n1. Собрали контакты (фио + № квартиры + телефон) тех жильцов, которые пресутствовали на собрании.\n2. Подписали заявление по счётчикам тепла.\n3. Подписали заявление \"щодо недоліків\".\n4. Коллективное обращение по договорах коммуналки.\n5. Инициативная группа рассказала про текущий ход переговоров с жеком по поводу договоров.\n\nЧто дальше: \n1. Ждём результатов переговоров инициативной группы с жеком. Она должна состояться сегодня.\n2. Когда будут готовы согласованные с жеком договора, они будут выложены здесь и на форумах, чтобы каждый мог себе их распечатать, и сравнить с тем, что жек даст на подпись при подписании акта.\n2. Кто не подписал заявления/обращения, сможет это сделать до четверга. Где их можно будет подписать - позже узнаем."],
["26/04/2017", "08:29:53", "unknown", "+123456789",
"Колективне звернення по договорах комуналки.pdf"],
["26/04/2017", "08:29:54", "unknown", "+123456789",
"Лист щодо недоліків Забудовнику та Управителю.pdf"],
["26/04/2017", "08:29:54", "unknown", "+123456789",
"Лічильники тепла - Акцепт.pdf"],
[""]
]