You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell解析含空格字符串的JSON截断问题及简化方案问询

批量提取JSON中带空格字符串的简洁方法

之前用grep逐个提取JSON字段,不仅会因为空格截断像“aaa bbb ccc ddd eee”这类带空格的字符串,还得重复写大量冗余代码。解决这类问题最靠谱的方式是用专门的JSON处理工具jq,它能正确识别JSON的字符串边界,还能一次性批量提取多个字段。

示例操作

假设你的Initial.json内容如下:

{
  "title": "aaa bbb ccc ddd eee",
  "content": "hello shell json example",
  "author": "test user"
}

方法1:直接批量输出指定字段

想一次性查看所有需要的字段,直接用jq指定多个字段路径:

jq -r '.title, .content, .author' Initial.json

输出结果会完整保留每个字段的空格:

aaa bbb ccc ddd eee
hello shell json example
test user

方法2:批量赋值给Shell变量

要把这些字段直接存到Shell变量里,用jq的@sh格式生成安全的赋值语句,再通过eval执行,能避免特殊字符的问题:

# 生成赋值语句并执行
eval "$(jq -r '@sh "title=\(.title) content=\(.content) author=\(.author)"' Initial.json)"

# 验证变量是否正确
echo "$title"  # 完整输出aaa bbb ccc ddd eee
echo "$content"
echo "$author"

这种方式不用重复写提取逻辑,一次就能处理所有需要的字段,还能保证字符串内容完整不截断。

内容的提问来源于stack exchange,提问作者Joy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:26:17