小编Ité*_*442的帖子

Linux Shell - 使用 sed 读取 json 时如何删除 JQ 生成的转义字符?

我正在尝试读取一个 json 文件并使用其输出来jq构建另一个 json,结合上述 json 文件和其他值,并将其传递给CURL

我用以下方式读取文件policies=$( sed 's/\\//g' policies.json)

我使用以下jq命令构建新的 json

BODY=$( jq -n \
            --arg cid "$chaincodeId" \
            --arg cv "$chaincodeV" \
            --arg ct "$chaincodeT" \
            --arg ar "$chaincodeArgs" \
            --arg pol "$policies" \
            '{chaincode_id: $cid, chaincode_version: $cv, chaincode_type: $ct, endorsement_policy: $pol}' )
Run Code Online (Sandbox Code Playgroud)

它对于前 4 个属性效果很好。但是,endorsement_policy 属性包含反斜杠,因此服务器无法读取通过curl 发送的属性。

body 的输出如下

{ "chaincode_id": "IdentityManager", "chaincode_version": "testcc2", "chaincode_type": "node", "endorsement_policy": "{\n \"identities\": [\n {\n \"role\": {\n \"name\": \"member\",\n \"mspId\": \"org1\"\n }\n },\n {\n \"role\": …
Run Code Online (Sandbox Code Playgroud)

shell scripting sed curl jq

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

curl ×1

jq ×1

scripting ×1

sed ×1

shell ×1