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

如何在Windows Cmder中执行jq多属性选择命令处理外部JSON文件

解决Cmder中jq复杂筛选命令的语法错误

问题根源

Cmder默认采用Windows CMD的命令解析逻辑,CMD不支持用单引号包裹命令参数,必须使用双引号。同时,表达式内部的双引号需要用**反斜杠()**转义,否则CMD会误将内部双引号识别为参数的结束标记,触发路径语法错误。

正确命令写法

针对你需要提取特定属性构造新对象的需求,修正后的命令如下:

jq ".[][] | {\"accountNumber\":.accountNumber, \"brand\":.brand, \"city\":.city, \"state\":.state}" sample.json --color-output

更简洁的替代方案

如果觉得转义引号过于繁琐,可以把jq表达式保存到一个文本文件(比如命名为filter.jq),内容如下:

.[][] | {accountNumber:.accountNumber, brand:.brand, city:.city, state:.state}

然后执行以下命令即可:

jq -f filter.jq sample.json --color-output

这种方式无需处理任何引号转义,逻辑更清晰。

额外注意事项

  • 在CMD环境下,所有包含|、{}、双引号等特殊字符的jq表达式,都必须用双引号包裹,内部的双引号要用\转义。
  • 如果你后续修改Cmder配置切换到Git Bash等其他shell,引号规则会有所不同,但当前只需遵循CMD的规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 18:25:25