パイプライン転送に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 リリースノート

おすすめ記事