타이밍을 포함한 파이프라인 재생 도구

타이밍을 포함한 파이프라인 재생 도구

teecat나중에 파일을 사용할 수 있도록 stdin의 복사본을 파일에 저장합니다 .

타이밍을 기록하고 재생하면서 이를 수행할 수 있는 도구가 있습니까?

그래서 나는 다음을 원한다:

$ (echo foo; sleep 1; echo bar) |
    the-tee-tool --out myfile > /dev/null
$ time the-tee-tool --in myfile | cat
foo
bar
real    0m1.002s
user    0m0.002s
sys     0m0.000s

그러한 도구를 어떻게 만들 수 있는지 알고 있지만 이미 존재합니까?

답변1

이제 이것이다:https://gitlab.com/ole.tange/tangetools/-/tree/master/teetime

Usage:

... | teetime [-a] file | ...
teetime -i file

-a  append to file
-i  read from file

답변2

나는 일할 시간을 가질 수 없었기 때문에 (오류가 없었을 수도 있고 잘못된 Perl이 있었을 수도 있음) pip로 설치할 수 있는 것을 작성했습니다.

튜브 VCR:

pip3 install --user pipevcr

다음과 같은 녹음 파이프라인을 사용할 수 있습니다 -r.

(echo start; sleep 1; echo continue; sleep 1; echo end) | pipevcr -r test.vcr

재생해 보세요.

pipevcr test.vcr

작업 속도를 높이려면 일시 중지에 대한 최대 대기 시간을 설정할 수 있습니다.

pipevcr -m 300 test.vcr

답변3

필요한 정확도에 따라 다릅니다. 1초의 정확도를 달성하기 위해 쉘 스크립트는 각 행 앞에 현재 SECONDS 값을 추가하기만 하면 됩니다. 재생되면 자체 SECONDS와 파일의 다음 줄 값 사이의 기간 동안 휴면 상태가 될 수 있습니다.

정밀도를 높이려면 호출 date(알 수 없는 정밀도에 나노초를 제공하고 각 데이터 행에 대해 외부 프로시저를 트리거함) 또는 C(마이크로초 제공)를 사용해야 합니다. 입력 파이프라인의 지연은 초기 타임스탬프에 약간 영향을 미칩니다.

관련 정보