1

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

4,"abc"
8,"def"
9,"ghi"

Я хочу окружить значение первого столбца двойными кавычками.

"4","abc"
"8","def"
"9","ghi"

Как я могу это сделать ?

3 ответа3

5

Очень простая замена:

cat tmp.csv | awk -F, '{sub($1, "\"&\""); print}'

Опция -F сообщает awk, что разделитель полей - запятая, аргумент sub(stitution) указывает awk заменять первое поле на себя (&), перед которым следует, а затем ".

0

Это просто быстрый и грязный способ (будут лучшие способы):

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

Первый s/"//g удаляет все " .
Затем s/^\|$/"/g добавляет " в начале и конце строки.
И последняя s/,/","/g заменяет , ","

Конечно, это работает, только если у вас нет " и , в ваших областях.

0

Это может работать для вас (GNU sed):

sed 's/[^,]*/"&"/' file

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