你能在用 tee 写的每一行前面加上当前日期和时间吗?

use*_*346 9 bash logging tee

我使用“tee”命令来将长 bash 命令的结果捕获到文件中。

我用 tee 发出的文件可以以某种方式在每行前面加上写入该行时的时间戳吗?我正在寻找一种解决方案,其中每行都有不同的日期时间值...而不是每行上的前缀相同的值。

我想要这个的原因是,当我阅读文件以了解慢速区域在哪里时,了解每行何时发出将非常有用。

use*_*686 7

如果 tee 不能做某事,请将其通过管道传输到可以做某事的程序。moreutils有一个名为的工具ts,其用途正是这样的:

$ 回声测试 | ts
2月2日 13:17:27 测试

如果你想给所有东西加上时间戳,用法应该很明显:

myapp | ts | tee app.log
Run Code Online (Sandbox Code Playgroud)

其他组合也是可能的;例如,仅对屏幕输出或日志文件添加时间戳:

myapp | tee app.log | ts
myapp | tee >(ts > app.log)
myapp | tee /dev/tty | ts > app.log
myapp | pee "ts > app.log" "cat"
myapp | pee "cat > app.log" "ts"
Run Code Online (Sandbox Code Playgroud)

(是的,最后一个也来自 moreutils。)