2017-03-31 109 views
1

下午好。由于许多脚本在不同的时间运行,因此我有日志文件在整个白天被填充。这不是一个巨大的文件,但一个问题是日志条目没有时间戳记的时间。尾-f日志文件的时间戳

既然如此,我通常通过PuTTY会话登录到服务器并运行该日志文件尾-f这样我就可以看到,这些脚本开始。我想要做的就是改变我的尾巴-f为每个显示在屏幕上的项目添加一个时间戳。我已经使用了以下内容:

尾-f scheduler_ date '+%m%d%y' .LOG | SED S/^/$(日期+%H:%M%_ *)/

这里的问题是,它使用tail命令的时间戳,而不是每一行进入该日志文件的时间。

我查阅了一些其他的情况下,包括下面的那些,但没有我发现提供正是我要找的。任何帮助,将不胜感激。

How to pipe tail -f into awk

https://users.cs.cf.ac.uk/Dave.Marshall/PERL/node241.html

回答

0
tail -f "scheduler_$(date '+%m%d%y').log" | perl -pe 's/^/$_=qx(date +%T_); chomp; $_/e' 

qx调用外部date +%T_命令。其输出存储在变量$_中。 chomp$_中删除尾部换行符。然后$_返回成为替代。

我假设你命令中的最后一个%是一个错字,应该用秒代替,所以我写了%T,这是%H:%M:%S的缩写。

如果性能问题,你可以不喜欢这样,每行一个新的日期工艺做:

tail ... | perl -pe 'BEGIN { use POSIX "strftime" } s/^/strftime "%T_", localtime/e' 
相关问题