stdin が存在する場合に `time` に同じ形式を使用させるにはどうすればよいですか?

stdin が存在する場合に `time` に同じ形式を使用させるにはどうすればよいですか?

OSX では、これらを同じにしたいです (できれば最初の形式)。後処理なしでこれを行うにはどうすればよいですか?

$ time echo foo
foo

real    0m0.000s
user    0m0.000s
sys 0m0.000s
$ echo | time echo foo
foo
        0.00 real         0.00 user         0.00 sys

答え1

オプション「出力は IEEE Std 1003.2-1992 ('POSIX.2') で指定されたとおりにフォーマットされます。」を使用します-p。これは完璧ではありませんが (タブ/スペースに奇妙なことが起こっているようです)、時間自体は同じようにフォーマットされます。

$ time -p echo foo
foo
real 0.00
user 0.00
sys 0.00

$ echo | time -p echo foo
foo
real         0.00
user         0.00
sys          0.00

関連情報