【发布时间】:2019-09-06 09:11:16
【问题描述】:
我需要准备包含要通过 CURL 发送的撇号的 JSON。 JSON 示例:
{"myField":"Apos'test"}
我需要作为输出的 JSON 示例:
{"myField":"Apos'\''test"}
我尝试过的:
sed -e "s/'/'\\\''/g" <<< {"myField":"Apos'test"}
哪个输出:
{myField:Apos'\''test}
我不明白为什么它会删除双引号。
附: sed 不是必须的,任何其他标准的 linux 工具都可以。
【问题讨论】:
-
使用
jq:generate_post_data(){jq -n --arg v "$1" '[{ "myField": $v }]'},然后使用generate_post_data "Apos'test" -
sh 删除双引号,与
echo {"myField":"Apos'test"}相同。改用sed -e "s/'/'\\\''/g" <<< "{\"myField\":\"Apos'test\"}"。
标签: json sed replace apostrophe