我似乎无法让jq
在shell管道中表现“正常”。例如:如何在shell管道中使用`jq`?
$ 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
故意想逃出来,如果它决定了它没有被从终端方式运行?如何防止这种行为,以便我可以在管道中使用jq
?
* (我知道这个例子中含有useless use of cat;它是仅用于说明目的)
为什么管 “猫”?它真的有必要吗? –
因为OP有它,所以我把它留下了;我认为这只是一个占位符,表示'jq'既是从管道读取数据,又是写入另一个管道。如果愿望只是看到'jq'的输出,那么'cat'本身是不必要的。 – chepner
(1)jq版本1.5已被增强,在这种情况下是不必要的。 (2)没有必要引用“。”。 – peak