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

使用POSIX工具解析JSON字符串,提取state与config内容

提取JSON中state和config字段的Shell命令

直接用正则(sed/grep)处理JSON很容易出错——JSON的嵌套结构、空格变化都会让正则匹配失效,推荐用专门的JSON处理工具jq,这是Shell环境下处理JSON的标准工具,先确保系统已安装(Debian/Ubuntu用apt install jq,CentOS/RHEL用yum install jq)。

从API响应变量$RESPONSE提取

提取state内容到变量或文件

# 提取到变量
STATE_CONTENT=$(echo "$RESPONSE" | jq '.state')
# 查看结果
echo "$STATE_CONTENT"
# 写入文件
echo "$STATE_CONTENT" > /tmp/state.json

提取config内容到变量或文件

# 提取到变量
CONFIG_CONTENT=$(echo "$RESPONSE" | jq '.config')
# 查看结果
echo "$CONFIG_CONTENT"
# 写入文件
echo "$CONFIG_CONTENT" > /tmp/config.json

从本地文件/tmp/a.json提取

如果已经把响应保存到文件,直接用jq读取文件更高效:

# 提取state到文件
jq '.state' /tmp/a.json > /tmp/state.json
# 提取config到文件
jq '.config' /tmp/a.json > /tmp/config.json

为什么之前的命令失败?

  1. sed命令问题:正则里的$state是Shell变量引用,且正则写法完全没考虑JSON的嵌套结构,无法匹配到正确内容。
  2. grep命令问题:引号未转义导致语法错误({"state":.*}里的双引号会被Shell解析),就算转义后,.*会匹配到字符串结尾,无法精准截断到state对象的闭合大括号,嵌套结构下更会失效。

内容的提问来源于stack exchange,提问作者nm-happy-to-code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:21:08