バイナリの開始時間に基づいてタイムスタンプを印刷するように "ts"に要求しますか?

バイナリの開始時間に基づいてタイムスタンプを印刷するように

tsウォールクロック時間ではなくバイナリが開始された時間に基づいてタイムスタンプを印刷できますか?私は通常、単一のコマンド実行でイベント間の経過時間を測定するために使用するため、壁時計は相対的な時間ではなく、ほとんどの場合、コマンドの実行を開始するのにかかる時間です。同じ動作を得る他のソリューションを高く評価します。

例えばsome --command=or 'something' | ts '%.T'

ベストアンサー1

少なくともmoreutils実装には次のオプションがあります-s

   If the -i or -s switch is passed, ts timestamps incrementally instead.
   In case of -i, every timestamp will be the time elapsed since the last
   timestamp. In case of -s, the time elapsed since start of the program
   is used.  The default format changes to "%H:%M:%S", and "%.S" and "%.s"
   can be used as well.

前任者。

$ while : ; do printf '...\n'; sleep 1; done | ts
May 11 15:42:41 ...
May 11 15:42:42 ...
May 11 15:42:43 ...
May 11 15:42:44 ...
^C

しかし、

$ while : ; do printf '...\n'; sleep 1; done | ts -s
00:00:00 ...
00:00:01 ...
00:00:02 ...
00:00:03 ...
00:00:04 ...
^C

おすすめ記事