Сценарий оболочки для преобразования записи в строки с двойными кавычками, разделенными запятыми

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

"apple""banana""pineapple"

И я хотел бы, чтобы каждая строка была в двойных кавычках и разделена запятой, например:

"apple","banana","pineapple"

person Rohan Shah    schedule 22.07.2016    source источник
comment
добро пожаловать в stackoverflow. что вы пытались до сих пор решить эту проблему?   -  person Rohan Khude    schedule 22.07.2016


Ответы (2)


Вы можете попробовать это

sed 's/""/","/g'

 user@host:~$  echo '"apple""banana""pineapple"' | sed  's/""/","/g'
"apple","banana","pineapple"
person Mustafa DOGRU    schedule 22.07.2016
comment
Спасибо за ваш ответ, сэр, я просто хочу сделать процесс динамичным. Динамическое в некотором смысле изменение количества столбцов для каждой строки записи. - person Rohan Shah; 22.07.2016

этот однострочный awk должен работать для данного примера:

awk -F'""' -v OFS='","' '$1=$1' 
person Kent    schedule 22.07.2016
comment
Спасибо за ваш ответ, сэр, я просто хочу сделать процесс динамичным. Динамическое в некотором смысле изменение количества столбцов для каждой строки записи. - person Rohan Shah; 22.07.2016
comment
Это не удастся, если/когда первое поле будет пустым. Не полагайтесь на $1=$1, оценивающее истинное условие, если у вас нет конкретной цели и вы не понимаете предостережения - всегда используйте {$1=$1}1 вместо этого по умолчанию. @RohanShah - уточните свой комментарий и отредактируйте свой вопрос, чтобы показать случай, когда текущие ответы не делают то, что вы хотите. - person Ed Morton; 24.07.2016
comment
@Kent спасибо, ваш скрипт работает для большинства сценариев. Но если поле пустое, у меня проблема. Так, например, запись abcde. Затем я получаю вывод как a, b, cd, e, И ожидаемое значение равно a, b, cd, e. Не могли бы вы помочь мне в освещении этого сценария. Заранее спасибо. - person Rohan Shah; 25.07.2016
comment
@RohanShah протестировал мою команду с вашим примером в комментарии, он дает ожидаемый результат. "a","b","c","d","e","". - person Kent; 25.07.2016
comment
@Ed Morton Да, вы правы, условие не выполняется, когда первое поле пусто. Не могли бы вы помочь мне в этом. - person Rohan Shah; 26.07.2016
comment
@RohanShah Эд прав. $1=$1 не будет печатать вывод, если у вас пусто или 0 в $1, я признаю, что я был ленив и проверил только данный пример. {$1=$1}1 должно работать, как сказал Эд, если у вас пустое $1 - person Kent; 26.07.2016