我需要准备包含撇号的JSON,以便通过CURL发送。 JSON示例:
{"myField":"Apos'test"}
我需要作为输出的JSON示例:
{"myField":"Apos'\''test"}
我尝试过的:
sed -e "s/'/'\\\''/g" <<< {"myField":"Apos'test"}
哪个输出:
{myField:Apos'\''test}
我不明白为什么它会删除双引号。
附:使用sed不是必须的,任何其他标准的linux工具都可以使用。
试试这个:
#/bin/bash
replacement=$((cat << EOT
{"myField":"Apos'test"}
EOT
) | sed "s|'|'\\\''|")
echo $replacement
输出:
{"myField":"Apos'\''test"}
它没有 如果是因为你使用<<<,这里,其中“”对被解析,扩展和掉落你所在的shell
$ cat d
{"myField":"Apos'test"}
$ sed -E "s/'/'\\\''/g" d
{"myField":"Apos'\''test"}