有一个运行时间很长的程序,它会不断地写入日志文件-怎么可能在不考虑任何缓冲问题的情况下,使用linux脚本向写入该文件的每一行添加一个日期字符串?

我会想象这样的事情:

tail -f logfile | ADD_DATE_TO_EACH_LINE > logfile2

输入将是这样的:
abc
def
ghi
jkl

输出应类似于以下内容:
2011-06-16 18:30:59 abc
2011-06-16 18:31:00 def
2011-06-16 18:35:21 ghi
2011-06-16 18:40:15 jkl

最佳答案

使用perl:

command 2>&1 | perl -pe 'print scalar(localtime()), " ";'

使用gawk:
command 2>&1 | awk '{ print strftime(), $0; fflush() }'

对于您的特定示例,将command替换为tail -f logfile。或者,也许您可​​以将原始程序的stdout/stderr重定向到上述管道。

10-01 06:16
查看更多