タイミングを含むパイプライン再生ツール

タイミングを含むパイプライン再生ツール

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(C)を使用する必要があります。入力パイプラインの遅延は初期タイムスタンプにわずかに影響します。

関連情報