Score:0

ต้องการความช่วยเหลือในการแทนที่ค่าใน json โดยใช้ sed

ธง mx

สวัสดี ทีมงาน ฉันต้องการความช่วยเหลือในการแทนที่การแก้ไขการกำหนดงาน ecs ปัจจุบันในไฟล์ json ฉันสามารถแทนที่ค่าสำหรับ awsNetworkSubnet ในตัวแปร json ได้สำเร็จ แต่พยายามสร้างคำสั่ง sed ที่เหมาะสมสำหรับการแก้ไขหมายเลข (ซึ่งเป็น 7 ในตัวแปรตัวอย่าง json ด้านล่าง)

สคริปต์ทุบตี:

#!/bin/bash
Input_file=$1
ENV=$2
Commit_id=$3

subnet_id=$(aws ec2 อธิบาย subnets --filter "Name=tag:use,Values=data" --query "Subnets[*].SubnetId" --output json | jq -r '.[0]')
echo "Subnet ID: ${subnet_id}"

airflow_ecs_task_definition_revision=$( aws ecs อธิบายงานนิยาม -- งานนิยาม 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": "airflow_ecs",
        "awsNetworkSubnet": "ซับเน็ต-1234",
        "awsRegionName": "เรา-ตะวันออก-1",
        "awsSecurityGroup": "sg-1234",
        "awsTaskDefinition": "airflow_ecs-small:7"
    },

AWS CLi ที่ใช้:

./subnet-cicd.sh ตัวแปร json ทดสอบ cmt1234
cn flag
คำแนะนำมาตรฐานคือ: ใช้ตัวแยกวิเคราะห์ JSON เพื่อแยกวิเคราะห์ข้อมูล JSON [`jq`](https://stedolan.github.io/jq/) เช่น
hr flag
ใช่ ฉันสับสน - ดูเหมือนคุณจะรู้เรื่อง jq - บางทีสิ่งที่คุณขาดหายไปคือตัวดำเนินการ *updateassign* `|=`? ดู[การมอบหมาย](https://stedolan.github.io/jq/manual/#Assignment)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา