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

能否通过单条JQ查询执行同对象内的cmd命令?

在JQ中执行同一对象内的命令

可以实现,但jq本身没有内置功能直接将字符串形式的jq表达式转为可执行代码,需要借助shell管道或外部jq进程调用完成。

针对你给出的示例JSON:

{
  "cmd": ".name += \" Smith\" | .name",
  "name": "John"
}

可以通过以下单条命令实现需求:

jq -r '.cmd' input.json | jq -f- input.json

命令解释:

  1. 第一个jq -r '.cmd' input.json:从目标JSON中提取出cmd字段的字符串内容(即.name += " Smith" | .name),并以原始字符串输出。
  2. 管道|将提取出的脚本内容传给第二个jq命令,-f-参数表示从标准输入读取jq脚本,同时指定原JSON文件input.json作为处理对象,最终执行脚本得到结果"John Smith"。

如果不想依赖外部文件,也可以将JSON内容内嵌到命令中:

json='{"cmd": ".name += \" Smith\" | .name", "name": "John"}'; echo "$json" | jq -r '.cmd' | jq -f- <(echo "$json")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:32:05