Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Не понял, как лучше обработать csv файл.  (Прочитано 740 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн morhad

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
Добрый день!

Есть csv файл, поля которого разделены запятой. Поля могут быть символьные - символы могут быть любые (кроме кавычек), среди символов есть запятые. Символы символьного поля заключены в кавычки. Есть также числовые поля, которые не заключены в кавычки, просто цифры.
Понимаю, что нужно awk использовать, но как ? Т.е. при печати символьного поля хотелось бы, чтобы оно напечаталось без кавычек, которые его ограничивают, а при печати числового поля, просто это числовое поле. Например, для строки:
Код: (xml) [Выделить]
"ААрвь,174овГдв,,цшШ8","врв,,црцо*8ц89",89.50,15.22,2887819.222,"вровцГЦГШл,2,22,Э"
Первое поле: ААрвь,174овГдв,,цшШ8
Второе поле: врв,,црцо*8ц89
Третье поле: 89.50
Четвёртое поле:     15.22
Пятое поле: 2887819.222
Шестое поле: вровцГЦГШл,2,22,Э

Вок как это обработать, чтобы так отделять одно поле от другого? Ведь разделители-запятые нужно отличать от тех запятых, которые заключены в кавычки среди прочих символов символьного поля.
« Последнее редактирование: 27 Ноября 2016, 20:41:47 от Azure »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Не понял, как лучше обработать csv файл.
« Ответ #1 : 27 Ноября 2016, 19:06:57 »
Для csv есть специальные программы парсинга(csvtool например), позволяющие учесть возможные нюансы.
А на скорую руку по Вашим условиям:sed -r 's/("[^"]*"|[0-9.]+)(,|$)/\1\n/g;s/"//g'
« Последнее редактирование: 27 Ноября 2016, 19:11:26 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн morhad

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
Re: Не понял, как лучше обработать csv файл.
« Ответ #2 : 27 Ноября 2016, 19:38:11 »
Спасибо! Круто!

 

Страница сгенерирована за 0.018 секунд. Запросов: 19.