JQとSEDで処理した後にストリーミングJSONをファイルに印刷する方法

JQとSEDで処理した後にストリーミングJSONをファイルに印刷する方法

ストリーミングファイナンスデータをダウンロードするには、次のコードを使用しています。

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer XXX..." "https://...=EUR_USD" | jq --raw-output '[.time, .bids[0].price, .asks[0].price] | @csv'

したがって、端末から正常にストリーミングされます。

"2020-05-05T10:02:37.060299264Z","1.08472","1.08481"

しかし、私が本当に望んでいるのは、sedを使ってそれをさらに処理して次のようにすることです。

2020,05,05,10,02,37.060299264,1.08472,1.08481

その後、これはファイルに追加されます。 「出力」と呼びます。ただし、sedにパイプしようとすると、ストリームデータは表示されなくなります。しかし、私はすでに静的テストについて確認しているので、私のsed構文が正しいと確信しています。ファイル。

だから私の質問は:どのようにsedに追加のパイプを接続し、「出力」ファイルに追加できますか?

答え1

回答 投稿をリクエストするGlenn Jackmanのコメントに応じて、私が見つけた構文は次のとおりです。

stdbuf -oL -eL curl -s -H "Content-Type: application/json" -H "Authorization: Bearer XXX..." "https://...=EUR_USD" | jq --raw-output --unbuffered '[.time, .bids[0].price, .asks[0].price] | @csv' | sed -u 's/["Z]//g' | sed -u 's/[-T:]/,/g' >> ~/path/to/append/to/output

私は元の質問に記載されている任意の形式でファイルに追加されます。また、時々「出力」ファイルを見ると、ストリーミングデータが継続的に追加されていることがわかります。

関連情報