![JQ를 사용하여 JQ에 파이프된 명령의 결과로 Json 값을 설정하는 방법](https://linux55.com/image/177660/JQ%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20JQ%EC%97%90%20%ED%8C%8C%EC%9D%B4%ED%94%84%EB%90%9C%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%EA%B2%B0%EA%B3%BC%EB%A1%9C%20Json%20%EA%B0%92%EC%9D%84%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
명령의 JSON 출력에서 ID 번호를 가져오는 bash 스크립트에 함수가 있습니다. 이 값을 다른 JSON 파일에 설정하고 싶습니다. 어떻게 해야 하나요?
build_vpc(){
aws ec2 create vpc --Foo "ipaddress" | jq .Vpc.VpcID
}
Output : "vpc-0f482198efba76163"
이 값을 가져와서 다른 JSON 파일에 설정하고 싶습니다.
제이슨 파일:
{
"VPC":{
"VPC_ID" : ""
}
}
답변1
다음과 같이 보일 것입니다:
jq --argjson vpcid "$(
aws ec2 create vpc --Foo "ipaddress" | jq .Vpc.VpcID
)" 'setpath(["VPC","VPC_ID"]; $vpcid)' file.json > newfile.json
의 출력은 jq .Vpc.VpcID
json으로 해석되고 $vpcid
other 변수( path 의 객체) 에 저장 jq
됩니다..VPC.VPC_ID
["VPC","VPC_ID"]
file.json
나는 위에서 당신이 file.json
처음에 보관해야 할 다른 정보를 가지고 있다고 가정하고 있습니다.고쳐 쓰다새로운 정보가 들어있습니다.
요점은 file.json
다음만 포함하는 새 콘텐츠를 만드는 것입니다.
{
"VPC":{
"VPC_ID" : "that-value"
}
}
다음 작업을 수행하면 됩니다.
aws ec2 create vpc --Foo "ipaddress" |
jq '{"VPC":{"VPC_ID":.Vpc.VpcID}}' > newfile.json