Comments 21
Python при сходных же реализациях и производительности выглядит на порядок чище и читаемее. Сопровождать и расширять такой код проще.
2. Модули есть под все
3. Правильно работает с уникодом
И это специализированный инструмент для обработки текста, и только во 2-ю очередь, ЯП общего назначения
P.S. Как-то по причине нелюбви к $varname синтаксису так не стал PHPшником
Вот как приходится мучаться, когда нормального языка программирования под рукой нет.
А еще наши государственные opendata как будто специально задуманы, чтобы с ними мучались.
Переписывался как-то с ответственной начальницей в госкомстате по поводу файла какого-то классификатора на 50 Гб в ворде (!).
Вкратце — "нас обязали, мы выложили, а насколько это вам удобно — уже не наше дело".
Самое страшное в баше — это отсутствие человеческой обработки ошибок. В результате надёжный код получается обмазан кучей проверок кодов возврата и/или output от программ и это реально становится тяжело отлаживать и расширять. Плюсы тоже очевидны: bash и wget практически самые стандартные утилиты, которые есть практически в каждом дистрибутиве linux. И порог входа в них достаточно низок.
Вопрос из зала: почему нет многопотока? Почти наверняка можно было запустить по 8 (или любое число) одновременных процессов скачивания и преобразования файлов. Ну, если, конечно, не стояло задачи делать все на самом слабом и дешёвом сервере....
Libxml, который использует xmlstarlet, по скорости совсем не лучший выбор. Автор pugixml (есть на гитхабе) утверждает что его произведение в разы быстрее
Парсинг 0.5Tb xml за несколько часов. Поиск организаций в открытых данных реестра субъектов МСП ФНС