有一个运行时间很长的程序,它会不断地写入日志文件-怎么可能在不考虑任何缓冲问题的情况下,使用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重定向到上述管道。