У меня есть данные в следующем формате -
4,"abc"
8,"def"
9,"ghi"
Я хочу окружить значение первого столбца двойными кавычками.
"4","abc"
"8","def"
"9","ghi"
Как я могу это сделать ?
Очень простая замена:
cat tmp.csv | awk -F, '{sub($1, "\"&\""); print}'
Опция -F сообщает awk, что разделитель полей - запятая, аргумент sub(stitution) указывает awk заменять первое поле на себя (&), перед которым следует, а затем ".
Это просто быстрый и грязный способ (будут лучшие способы):
sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/,/","/g' file.csv
Первый s/"//g
удаляет все "
.
Затем s/^\|$/"/g
добавляет "
в начале и конце строки.
И последняя s/,/","/g
заменяет ,
","
Конечно, это работает, только если у вас нет "
и ,
в ваших областях.
Это может работать для вас (GNU sed):
sed 's/[^,]*/"&"/' file