@stanced

Как разделить текст в csv с помощью sed?

Есть прайс лист в csv формате, нужно выделить запятыми размер резины, радиус, нагрузку, индекс скорости и производителя:

Исходный формат:
4918,335/30R18 102Y Pirelli PZERO CORSA I,0,3,15.3...
2940,335/25R22 105Y Vredestein Ultrac Vorti XL,26,,17.42,...

Необходимый формат:
4918,335,30,R18,102,Y,Pirelli,PZERO CORSA I,0,3,15.3,4-6 дней,
2940,335,25,R22,105,Y,Vredestein, Ultrac Vorti XL,26,,17.42,...

Обрабатываться будет на линуксе баш скриптом, как это лучше сделать?
  • Вопрос задан
  • 417 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AVKor
Считать строку. Заменить слеш на запятую. Третий элемент: считать до пробела; потом начало (число) третьего элемента по регулярке; считать до пробела; потом начало (число) по регулярке; снова до пробела; до первой запятой; всё, что осталось.

sed, grep, cut, awk в руки.
Ответ написан
Парсить входной файл как формат CSV: каждую исходную строку рассматривать как набор ячеек. Библиотек полным полно на любом языке программирования.
2-ю ячейку разбиваем на части при помощи регулярных выражений. Каким именно образом - зависит от точного формата ячейки. Скажем, в частном случае название производителя может быть одним словом (Pirelli, Vredestein), а может 2 и более. Таким образом, из одну ячейку мы можем разбить на несколько, записывая результат в строку выходного файла.
Аналогично и с другими ячейками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы