代码之家  ›  专栏  ›  技术社区  ›  Alexander Mills

如何使用jq更改null/boolean/number的颜色?[副本]

  •  1
  • Alexander Mills  · 技术社区  · 2 年前

    管道到jq,我得到的输出是这样的:

    enter image description here

    有没有办法改变null/boolean/number的颜色?

    类似于:

    export jq_int_color=yellow
    export jq_bool_color=red
    export jq_null_color=black
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   Alexander Mills    2 年前

    通过将jq_colors环境变量设置为部分终端转义序列的冒号分隔列表,可以使用jq更改不同类型值的颜色。例如,如果要将null值设为红色,将false值设为绿色,将true值设为蓝色,将数字设为黄色,将字符串设为品红色,将数组设为青色,将对象设为白色,则可以使用以下命令:

    export JQ_COLORS='0;31:0;32:0;34:0;33:0;35:0;36:1;37'
    

    每对中的第一个数字表示样式(如明亮、暗淡、下划线等),第二个数字表示颜色(如黑色、红色、绿色等)。您可以在jq文档中找到更多详细信息和示例。

    默认的JQ_COLORS值是一组环境变量,用于控制JQ命令行工具的颜色输出。

    JQ_COLORS='0;31:0;39:0;39:0;39:0;39:0;39:0;39:0;39:0;39:0;39:0;39'
    export JQ_COLORS_ERROR='1;31'
    export JQ_COLORS_NULL='1;30'
    export JQ_COLORS_FALSE='0;31'
    export JQ_COLORS_TRUE='0;32'
    export JQ_COLORS_NUMBER='0;33'
    export JQ_COLORS_STRING='0;35'
    export JQ_COLORS_ARRAY='1;37'
    export JQ_COLORS_OBJECT='1;37'
    export JQ_COLORS_KEY='0;33'
    

    每个变量都由一对用分号分隔的数字组成,这些数字表示前景和背景颜色的ANSI转义码。例如,0;31表示黑色背景和红色前景。您可以更改这些值以自定义jq的配色方案。