jq 子字符串给出“jq:错误:无法用对象索引字符串”

bco*_*rso 6 parsing substring jq

问题

我正在尝试过滤json JQ结果以仅显示原始字符串的子字符串。例如,如果 JQ 过滤器抓取了该值

4ffceab674ea8bb5ec421c612536696839bbaccecf64e851dfc270d795ee55d1
Run Code Online (Sandbox Code Playgroud)

我希望它只返回前 10 个字符4ffceab674


我尝试过的

JQ 官方网站上,您可以找到一个可以满足我需要的示例:

Command:    jq '.[2:4]'

Input:      "abcdefghi"
Output:     "cd"
Run Code Online (Sandbox Code Playgroud)

我尝试在 unix 终端中使用一个简单的示例来测试这一点:

# this works fine, => "abcdefghi"
echo '"abcdefghi"' | jq '.'

# this doesn't work => jq: error: Cannot index string with object
echo '"abcdefghi"' | jq '.[2:4]'
Run Code Online (Sandbox Code Playgroud)

ryu*_*shi 2

因此,事实证明这些过滤器中的大多数尚未发布版本。参考问题#289

您可以做的是下载最新的开发版本并从源代码编译。请参阅下载页面> 来自 Linux 上的源代码

之后,如果索引仍然不适用于字符串,那么您至少应该能够进行爆炸、索引、内爆组合,这似乎是您的计划。