gpt4 book ai didi

shell - 如何在shell管道中使用 `jq`?

转载 作者:行者123 更新时间:2023-12-03 04:13:02 25 4
gpt4 key购买 nike

我似乎无法让 jq 在 shell 管道中“正常”运行。例如:

$ curl -s https://api.github.com/users/octocat/repos | jq | cat

导致jq简单地打印出其帮助文本*。如果我尝试将 jq 的输出重定向到文件,也会发生同样的事情:

$ curl -s https://api.github.com/users/octocat/repos | jq > /tmp/stuff.json

如果 jq 确定它不是从 tty 运行,它是否会故意退出?如何防止这种行为,以便我可以在管道中使用 jq

编辑:在最新版本的 jq 中,这似乎不再是问题。我现在有 jq-1.6 并且上面的示例按预期工作。

<小时/>

* (我意识到这个示例包含 useless use of cat ;仅用于说明目的)

最佳答案

您需要提供一个过滤器作为参数。要通过未经修改的方式传递 JSON,而不是默认提供的 pretty-print jq,请使用身份过滤器 .:

curl -s https://api.github.com/users/octocat/repos | jq '.' | cat

关于shell - 如何在shell管道中使用 `jq`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33247228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com