使用 jq 进行管道传输的问题

使用 jq 进行管道传输的问题

精确的这里提出了问题:

在管道链中使用 jq 不会产生输出

但那里提供的答案并没有解决我的问题。另外,我阅读了以下内容:

这些都没有解决我的问题。好的,以上信息是为了让您知道我已经完成了作业,在继续阅读之前请不要否决或关闭此问题:-)

我使用以下命令漂亮的印刷品一个 json 文件:

cat a-json-file.json |jq|less

但屏幕(END)底部显示 ,什么也没有显示。然后我用谷歌搜索了这个问题,找到了上述信息,尝试了:

cat a-json-file.json |jq --unbuffered|less

什么都没发生。然后我安装了expect,尝试:

cat a-json-file.json |unbuffer jq|less

它也不起作用,jq只需输出其命令行使用信息即可!

最后,我通过这个解决了这个问题:

jq "." a-json-file.json |less

现在的问题是,为什么管道链不能与 jq 一起使用,上面的非工作命令和工作命令有什么区别?

我的系统信息:Debian 10 buster, jq-1.5-1-a5b5cbe.

答案1

@steeldriver 的评论解决了这个问题:

你也尝试过吗cat a-json-file.json |jq '.'|less?这似乎是 jq 1.5 的一个已知问题 - 请参见示例重定向或管道输出具有不同的行为 #1028以及错误修复部分jq 1.6 发行说明

相关内容