스트리밍 금융 데이터를 다운로드하려면 다음 코드를 사용하고 있습니다.
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로 추가 파이프를 연결한 다음 "output" 파일에 추가할 수 있습니까?
답변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
내 원래 질문에 설명된 원하는 형식으로 파일에 추가됩니다. 또한 때때로 "출력" 파일을 보면 스트리밍 데이터가 지속적으로 추가되는 것을 볼 수 있습니다.