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

如何使用jq修改null、布尔值、数字的显示颜色?

能否通过环境变量修改jq中null、布尔值、数字的显示颜色?

原生jq本身不支持通过设置jq_int_color、jq_bool_color这类自定义环境变量来直接修改数字、布尔值、null的显示颜色,但可以通过两种方式实现自定义颜色效果:

1. 手动嵌入终端颜色转义序列

直接在jq脚本中插入ANSI颜色码,针对不同数据类型设置高亮:

# 示例:数字设为黄色,布尔值设为红色,null设为黑色
cat your_data.json | jq '
  def color_num: "\u001b[33m\(.)\u001b[0m";
  def color_bool: "\u001b[31m\(.)\u001b[0m";
  def color_null: "\u001b[30m\(.)\u001b[0m";
  walk(
    if type == "number" then color_num
    elif type == "boolean" then color_bool
    elif type == "null" then color_null
    else . end
  )
'
  • \u001b[33m等是终端颜色控制码,\u001b[0m用于重置颜色到默认
  • walk函数会递归遍历JSON的所有字段,对匹配类型的内容应用颜色

2. 使用第三方增强版jq工具

比如Go语言实现的gojq,它支持通过环境变量自定义语法高亮颜色:

export GOJQ_COLOR_NUMBER=yellow
export GOJQ_COLOR_BOOLEAN=red
export GOJQ_COLOR_NULL=black

之后用gojq替代原生jq处理数据,就能自动应用设置的颜色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:39:55