719*_*016 15 tail bash-scripting
我想在从“tail -f 输出文件”出来的每一行前面打印一个时间戳,这样我就知道每行什么时候打印出来。像:
[...] 20110617_070222:这里打印的结果 20110617_070312:这里打印的结果 20110617_070412:这里打印的结果 20110617_070513:结果打印在这里 [...]
有任何想法吗?
小智 19
它可能不会比这更短:
tail -f outputfile | xargs -IL date +"%Y%m%d_%H%M%S:L"
Run Code Online (Sandbox Code Playgroud)
请注意,我使用了您的问题建议的时间戳格式,但您可以自由使用该date命令支持的任何内容(标准 BSD 和 GNU 日期支持格式语法)。
编写一个简单的脚本来做到这一点。这是 perl 中的一个示例:
#!/usr/bin/perl
while(<>) {
print localtime . ": $_";
}
Run Code Online (Sandbox Code Playgroud)
要使用该脚本,只需通过它管道您的尾部输出:
tail -f outputfile | ./prepend_timestamp.pl
Run Code Online (Sandbox Code Playgroud)
您也可以内联进行:
tail -f outputfile | perl -pe '$_ = localtime.": $_"'
Run Code Online (Sandbox Code Playgroud)