Рейтинг:0

Нужна помощь в замене значений в json с помощью sed

флаг mx

Привет, команда, мне нужна помощь в замене текущей версии определения задачи ecs в файле json. Я могу успешно заменить значения для awsNetworkSubnet в variable.json. Но изо всех сил пытается создать соответствующую команду sed для версии № (которая равна 7 в примере переменных.json ниже)

Баш-скрипт:

#!/бин/баш
Input_file=$1
ENV=$2
Commit_id = $ 3

subnet_id=$(aws ec2 description-subnets --filter "Name=tag:use,Values=data" --query "Subnets[*].SubnetId" --output json | jq -r '.[0]')
echo "Идентификатор подсети: ${subnet_id}"

airflow_ecs_task_definition_revision=$( aws ecs description-task-definition --task-definition airflow_ecs-small --output json | jq '.taskDefinition.revision')
echo "Редакция определения задачи ECS: ${airflow_ecs_task_definition_revision}"

sed -i $1 \
    -e "/\"awsNetworkSubnet\":/ s/\"awsNetworkSubnet\":[^,]*/\"awsNetworkSubnet\":\"${subnet_id}\"/"

Пример файла Json (переменные, json)

        "awsCluster": "airflow_ecs-dev",
        "awsContainerName": "воздушный поток_ecs",
        "awsNetworkSubnet": "подсеть-1234",
        "awsRegionName": "США-восток-1",
        "awsSecurityGroup": "sg-1234",
        "awsTaskDefinition": "airflow_ecs-small:7"
    },

Используемый интерфейс командной строки AWS:

./subnet-cicd.sh, переменные.json, тест cmt1234
флаг cn
Стандартный совет: используйте анализатор JSON для анализа данных JSON. [`jq`] (https://stedolan.github.io/jq/), например
флаг hr
Да, я в замешательстве - вы, кажется, знаете о jq - возможно, вам не хватает оператора *обновления присваивания* `|=`? См. [Назначение] (https://stedolan.github.io/jq/manual/#Assignment).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.