代码之家  ›  专栏  ›  技术社区  ›  kyb thursdaysDove

使用jq只从流中获取第一个json对象,不要接触rest

  •  1
  • kyb thursdaysDove  · 技术社区  · 6 年前

    Split multiple input JSONs with jq 帮我解决了一个问题。但不是其他的。

    mkfifo xxs
    exec 3<>xxs  ## keep open file descriptor
    echo '{"a":0,"b":{"c":"C"}}{"x":33}{"asd":889}' >&3
    jq -nc input <&3  ## prints 1st object '{"a":0,"b":{"c":"C"}}' and reads out the rest
    cat <&3 ## prints nothing
    

    jq 在读取第一个对象后停止读取,并且不要接触流(fifo)中的其他数据。所以 cat 应显示其余数据: '{"x":33}{"asd":889}' .

    0 回复  |  直到 6 年前