我想为服务器事件添加时间戳,并将结果存储在日志中。
我的第一个想法是:
( ./runServer.sh ) | sed "s/.*/`date +%s` & /" | xargs -0 >Server.log 2>&1 &
但似乎sed从未重新评估日期,因此所有事件都会获得相同的时间戳。
现在我正在尝试使用环境变量来解决这个问题,但是找不到合适的方法。
我在下面显然有错误的一行:
( ./runServer.sh ) | xargs -0 'export mydate=`date +%s` ; sed "s/.*/$mydate & /"' >Server.log 2>&1 &
任何提示?感谢。
答案 0 :(得分:4)
试试这个:
<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'
酱:Is there a Unix utility to prepend timestamps to lines of text?
答案 1 :(得分:0)
一步一步地做,并使用$()而不是反引号。试试这个,没有经过测试。
timestamp=$(date +%s)
./runServer.sh | sed "s/.*/$timestamp & /" | .......