我的输入文件“test.html”包含以下内容。
Hi "Alice"
一个shell脚本
#!/bin/bash
var=`sed -e 's/"/\\"/g' < test.html`
echo { \"content\": \"$var\" } >> test.json
当我用命令
运行上面的shell脚本时>./to-json.sh
我正在获取输出
{ "content": "Hi "Alice"" }
虽然所需的输出是(有效的JSON)
{ "content": "Hi \"Alice\"" }
有人可以帮我辨别我做错了什么吗?如何获得上述所需的输出?
答案 0 :(得分:1)
使用真正的JSON生成工具包,例如jq。
var='Hi "Alice"' ## or var=$(<test.html) to read from a file
jq -nc --arg content "$var" '{ "content": $content }'
...正确地作为输出发出:
{"content":"Hi \"Alice\""}