sed,环境变量和日期问题

时间:2010-08-05 14:22:01

标签: bash unix variables sed environment

我想为服务器事件添加时间戳,并将结果存储在日志中。

我的第一个想法是:

( ./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  &

任何提示?感谢。

2 个答案:

答案 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 & /" | .......