JQ中立管和并置有什么区别?

JQ中立管和并置有什么区别?

我的程序返回JSONstdout它是一个带有operations字段的对象,其中包含操作列表。每个操作都包含字段包含id字段,例如:

{
    "operations": [
        {
            "id": "694ef895-793f4631-41103e8-8ab59e66",

我正在尝试从中获取 id 列表jq

如果我在写

jq '.operations | .[] | .id'

它有效,如果我正在写

jq '.operations | .[].id'

它也有效。

即并置与这里相同|

但如果我写

jq '.operations.[].id'

它失败并显示消息

jq: 错误:语法错误,意外的“[”,需要 FORMAT 或 QQSTRING_START(Unix shell 引用问题?),第 1 行:.operations.[].id jq: 1 编译错误

为什么以及如何解决?

答案1

只要您只比较.foo.bar|,就没有区别,正如手册页“基本过滤器”下所述:

形式的过滤器.foo.bar相当于.foo|.bar.

是的,你.operations[].id的情况需要。

相关内容