@Liet-Kynes

Как разделись строковую переменную запятыми?

Здравствуйте!

Как с помощью bash преобразовать список вида:
"one"
"two"
"three"
В следующий вид:
"one","two","three"
или в:
"one",
"two",
"three"
  • Вопрос задан
  • 151 просмотр
Решения вопроса 3
@Karpion
А в чём хранится этот список?
Ответ написан
xotkot
@xotkot
хорошо есть и хорошо весьма
Список хранится изначально в json, записываемый в переменную

В ответ от curl запроса, я получаю JSON файл в виде массива строк, с переносом строки, результат файла я хочу записать в переменную для следующего curl запроса в формате JSON на другой метод.


так может проще входящий json сразу преобразовать в нужный формат с помощью jq ?
например имеем такой json
{
  "user": "Liet-Kynes",
  "numbers": [
    "one",
    "two",
    "three"
  ]
}

нужно получить
["one","two","three"]

для этого будет достаточно выполнить:
jq -c '.numbers' file.json

в общем виде это будет выглядеть примерно так:
variable="$(curl -s 'URL' | jq -c '.numbers')"
естественно вместо .numbers ставим свои значения в зависимости от входящей структуры json
Ответ написан
@x1shn1k
jq имеет очень хороший функционал в плане работы с json. То что вы хотите, можно сделать одним только jq

echo '{"jsonrpc":"2.0","result":[{"groupid":"21","name":[{"nameid":"10322"},{"nameid":"10318"},{"nameid":"10084"}]}],"id":2}' | jq --raw-output '[.result[].name[].nameid] | join(",")'

10322,10318,10084
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
$ printf "one\ntwo\nthree\n" | awk '{ print $1.","}'
one,
two,
three,
Ответ написан
типа такого ?
sed -e 's/"$/", /g' 11.txt | tr -d '\r\n'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы