MacOS Shell创建含特殊字符JSON文件的问题求助
解决Shell创建含特殊引号的JSON文件问题
针对你遇到的JSON包含单引号和大量双引号导致Shell命令语法冲突的问题,这里提供几种简单可行的解决方案:
方法1:使用Here-Document(推荐)
这是最直观且无需转义任何引号的方法,直接将JSON内容原样写入文件:
cat > k.json << 'EOF' { "attributes": {}, "children": [ { "attributes": { "ignoreBoundsFiltering": "false" }, "children": [ { "attributes": { "text": "", "accessibilityText" : "Azione sull'account richiesta" } } ] } ] } EOF
注意这里的'EOF'加单引号是为了防止Shell解析JSON中的特殊字符(比如$符号),如果你的JSON里没有这类字符,也可以不加单引号。
方法2:分段单引号包裹+转义单引号
如果一定要用echo命令,可以将包含单引号的部分拆分,用'"'"'来插入单引号(相当于先闭合单引号,输出一个单引号,再重新开启单引号):
echo '{ "attributes": {}, "children": [ { "attributes": { "ignoreBoundsFiltering": "false" }, "children": [ { "attributes": { "text": "", "accessibilityText" : "Azione sull'"'"'account richiesta" } } ] } ] }' > k.json
这里的sull'"'"'account会被Shell解析为sull'account,完美还原JSON中的单引号。
方法3:使用printf命令
和echo逻辑类似,用分段单引号处理单引号,适合习惯用printf的场景:
printf '{ "attributes": {}, "children": [ { "attributes": { "ignoreBoundsFiltering": "false" }, "children": [ { "attributes": { "text": "", "accessibilityText" : "Azione sull'\''account richiesta" } } ] } ] }' > k.json
这里用\'来插入单引号,效果和方法2一致。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

