Сплит линия с кавычками в оболочке - PullRequest
0 голосов
/ 04 мая 2018

У меня есть строка, как указано ниже

"id":BinData(3,"dUpxQ3s018I0ijzNKWF+mQ=="),"id":BinData(3,"dUpxQ3s018I0ijzNKWF+lw=="),

Я хочу вывод в следующем формате, чтобы я мог сохранить его в массиве.

"id":BinData(3,"dUpxQ3s018I0ijzNKWF+mQ==")
"id":BinData(3,"dUpxQ3s018I0ijzNKWF+lw==")

Как я могу сделать это в awk или оболочке?

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Использование sed:

sed 's/,"id"/\n"id"/g;s/,$//' file

Есть 2 команды. Первый заменяет , новой строкой. Второй удаляет лишние , в последней строке.

0 голосов
/ 04 мая 2018

Просто чтобы показать другое мышление, вот ответ с GNU awk для multi-char RS, RT и gensub ():

$ awk -v RS='.{43}' 'RT{print gensub(/,$/,"",1,RT)}' file
"id":BinData(3,"dUpxQ3s018I0ijzNKWF+mQ==")
"id":BinData(3,"dUpxQ3s018I0ijzNKWF+lw==")
0 голосов
/ 04 мая 2018

Если ваш фактический Input_file такой же, как показано в примере, то вам могут помочь следующие.

awk '{gsub(/,"id"/,"\n\"id\"")} 1'  Input_file
...