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

使用jq处理数据时,如何获取不含多余字符的输出文件?

问题描述

通过以下代码生成test.json数据:

await CLI.mount({
    name: "test.json",
    data: JSON.stringify([{some:{data: {test: 'data'}}}, {some: {data: "there"}}])
});

使用jq处理后,输出包含[1;39m这类无法被系统识别的ANSI控制字符,具体输出如下:

Output of jq:
[1;39m{
  [0m[34;1m"test"[0m[1;39m: [0m[0;32m"data"[0m[1;39m
[1;39m}[0m

查阅jq手册所有参数后未找到解决方法,需获取不含多余字符的jq输出文件。

解决方法

这些多余字符是jq默认启用的彩色输出产生的ANSI转义序列,只需在调用jq时添加--monochrome-output(或简写-M)参数,即可禁用彩色输出,得到纯文本格式的结果。

示例命令:

jq -M '.[] | .some.data' test.json > clean_output.json

如果不需要格式化输出,想要紧凑的JSON结构,可搭配-c参数:

jq -Mc '.[] | .some.data' test.json > compact_clean_output.json

此外,也可以通过设置环境变量NO_COLOR=1全局禁用jq的彩色输出,适合需要多次调用jq的场景:

NO_COLOR=1 jq '.[] | .some.data' test.json > clean_output.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:10:05