-1

У меня есть данные в следующем формате:

productType , Description
Oven , Accurate Preheat, good start for the day 
hairDryers , Comes with extended warranty , 50% off

Желаемый результат:

"productType" , "Description"
"Oven" , "Accurate Preheat, good start for the day" 
"hairDryers" , "Comes with extended warranty , 50% off"

Я использовал следующую команду SED:

sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/,/","/g' filename.csv

Приведенная выше команда не работает, если у вас есть , и « в значениях ячеек.

вместо этого это выходит:

"productType","Description"
"Oven","Accurate Preheat"," good start for the day" 
"hairDryers","Comes with extended warranty "," 50% off"

любой способ исправить этот вывод, чтобы получить желаемый результат?

1 ответ1

2

Пытаться:

$ sed -E 's/([^,]*) , (.*)/"\1" , "\2"/' input
"productType" , "Description"
"Oven" , "Accurate Preheat, good start for the day"
"hairDryers" , "Comes with extended warranty , 50% off"

Во всех ваших примерах первая запятая является разделителем полей, а вторая запятая, если таковая имеется, является частью второго поля. Таким образом, мы разделяем входные данные в соответствии с расположением первой запятой в строке и помещаем кавычки вокруг двух частей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .