代码之家  ›  专栏  ›  技术社区  ›  Omar Alvarado

将jq查询字符串分成几行

  •  25
  • Omar Alvarado  · 技术社区  · 7 年前

    当我放置“\”查询分隔符时,如何将jq字符串拆分为行,这是针对长行的。

    vpcExists=$(aws ec2 describe-vpcs --profile $profile | jq -r --arg vpcId "$vpcId" '.[][] | \
     select(.VpcId == $vpcId) \
    | .["State"]' \
    )
    
    1 回复  |  直到 7 年前
        1
  •  43
  •   that other guy    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