Tôi dường như không thể nhận được jq
để xử lý "bình thường" trong đường ống vỏ. Ví dụ:Làm thế nào để sử dụng `jq` trong một đường ống vỏ?
$ curl -s https://api.github.com/users/octocat/repos | jq | cat
kết quả bằng cách jq
chỉ cần in văn bản trợ giúp *. Điều tương tự cũng sẽ xảy ra nếu tôi cố gắng để chuyển hướng đầu ra jq
's vào một tệp:
$ curl -s https://api.github.com/users/octocat/repos | jq > /tmp/stuff.json
là jq
cố tình bailing ra nếu nó xác định rằng nó không được chạy từ một tty? Làm cách nào để ngăn chặn hành vi này để tôi có thể sử dụng jq
trong một đường ống?
* (Tôi nhận ra ví dụ này chứa một useless use of cat, nó cho mục đích minh hoạ chỉ)
Tại sao các đường ống để "mèo"? Có thực sự cần thiết không? –
Tôi để lại nó vì OP có nó; Tôi giả sử nó chỉ là một trình giữ chỗ để chỉ ra rằng 'jq' vừa đọc vừa đọc từ một đường ống và viết vào một đường ống khác. Nếu mong muốn chỉ đơn giản là nhìn thấy đầu ra của 'jq', thì bản thân' cat' là không cần thiết. – chepner
(1) jq phiên bản 1.5 đã được cải tiến để. là không cần thiết trong các trường hợp như thế này. (2) Không cần báo giá ".". – peak