将jq查询字符串分解为行

时间:2018-02-09 19:08:09

标签: json linux bash jq

我怎样才能将jq字符串分成几行,这是为了排长队,当我把" \"查询中断。

vpcExists=$(aws ec2 describe-vpcs --profile $profile | jq -r --arg vpcId "$vpcId" '.[][] | \
 select(.VpcId == $vpcId) \
| .["State"]' \
)

1 个答案:

答案 0 :(得分:7)

jq对于文字换行符很好,所以只需在任何地方添加换行符而不试图转义它们:

vpcExists=$(aws ec2 describe-vpcs --profile $profile |
    jq -r --arg vpcId "$vpcId" '
   .[][] 
     | select(.VpcId == $vpcId)
     | .["State"]' 
)

这是一个MCVE:

jq -r --arg vpcId "someId" '
   .[][] 
     | select(.VpcId == $vpcId)
     | .["State"]'  << 'EOF'


{ "Vpcs": [ {
            "VpcId": "someId",
            "InstanceTenancy": "default",
            "State": "available",
            "IsDefault": false
        } ] }
EOF