Sed
使用 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,然後附加到文件“輸出”?
為了回應格倫傑克曼要求我發布答案的評論,我發現對我有用的語法是:
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
它以我原始問題中描述的所需格式附加到文件中。我還可以不時查看“輸出”文件,並看到流數據不斷被附加。