sed,环境变量和日期问题
我想向服务器事件添加时间戳并将结果存储在日志中。
我的第一个想法是:
( ./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 &
有任何提示吗?谢谢。
I want to add a timestamp to server events and store the result in a log.
My first idea was :
( ./runServer.sh ) | sed "s/.*/`date +%s` & /" | xargs -0 >Server.log 2>&1 &
But it seems sed never reevaluates the date, so all events get the same timestamp.
Now I'm trying to get around that using environment variable but I can't find a proper way to do it.
I have this obviously wrong line below :
( ./runServer.sh ) | xargs -0 'export mydate=`date +%s` ; sed "s/.*/$mydate & /"' >Server.log 2>&1 &
Any hints? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个:
酱汁: 有吗Unix 实用程序将时间戳添加到文本行?
Try this:
Sauce: Is there a Unix utility to prepend timestamps to lines of text?
逐步执行,并使用 $() 而不是反引号。试试这个,没测试过。
do it step by step, and use $() instead of backticks. Try this, not tested.