问题
How can i break jq string into lines, this is for long lines, when i put "\" query breaks.
vpcExists=$(aws ec2 describe-vpcs --profile $profile | jq -r --arg vpcId "$vpcId" '.[][] | \
select(.VpcId == $vpcId) \
| .["State"]' \
)
回答1:
jq
is fine with literal line breaks, so just add linefeeds anywhere without trying to escape them:
vpcExists=$(aws ec2 describe-vpcs --profile $profile |
jq -r --arg vpcId "$vpcId" '
.[][]
| select(.VpcId == $vpcId)
| .["State"]'
)
Here's a MCVE:
jq -r --arg vpcId "someId" '
.[][]
| select(.VpcId == $vpcId)
| .["State"]' << 'EOF'
{ "Vpcs": [ {
"VpcId": "someId",
"InstanceTenancy": "default",
"State": "available",
"IsDefault": false
} ] }
EOF
来源:https://stackoverflow.com/questions/48712545/break-jq-query-string-into-lines