3 回答

TA贡献1868条经验 获得超4个赞
可以尝试使用awk:
<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'
您可能需要确保<command>产生行缓冲输出,即在每行之后刷新其输出流。时间戳awk添加将是该行的结尾出现在其输入管道上的时间。
如果awk显示错误,请尝试gawk。

TA贡献1795条经验 获得超7个赞
tsfrom moreutils将在您输入的每一行前面加上一个时间戳。您也可以使用strftime对其进行格式化。
$ echo 'foo bar baz' | ts
Mar 21 18:07:28 foo bar baz
$ echo 'blah blah blah' | ts '%F %T'
2012-03-21 18:07:30 blah blah blah
$
要安装它:
sudo apt-get install moreutils

TA贡献1921条经验 获得超9个赞
注解,可以通过该链接获得,也可以annotate-output在Debian devscripts软件包中获得。
$ echo -e "a\nb\nc" > lines
$ annotate-output cat lines
17:00:47 I: Started cat lines
17:00:47 O: a
17:00:47 O: b
17:00:47 O: c
17:00:47 I: Finished with exitcode 0
添加回答
举报