我似乎無法讓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