У меня есть строка в моем файле swagger.json, которая может выводиться с помощью grep host swagger.json
:
"host": "there.can.be.nothing.or.anything.here",
поэтому я хочу заменить строку во вторых кавычках there.can.be.nothing.or.anything.here
Я просто поместил это значение в качестве примера, я мог бы поставить здесь пустые кавычки, например ""
или какой-то домен "example.com"
главное, что я заменяю все во вторых кавычках.
Итак, скажем, если я хочу заменить его строкой some.domain.com
(возможно, с помощью команды sed?):
Я отредактирую эту строку в своем чванстве:
"host": "some.domain.com",
Это файл json, поэтому используйте jq.
jq '.host = "some.domain.com"' swagger.json
Если вы не можете использовать json по какой-либо причине, используйте sed:
sed -ri 's/(^.*host\": \")(.*)(\".*$)/\1some.domain.com\3/' swagger.json
Разделите основную строку на три части и замените строку первой второй, за которой следует измененный текст и третья часть.
Команда sed работает! Спасибо! Команда jq не работает (я использовал тестовый файл только с этой строкой, может быть, поэтому), и я не уверен, что док-контейнер, который будет запускать эти команды, будет иметь jq, является ли jq частью bash?
Да, структура файла важна для команды jq.
Вы пробовали это?