Bash sed、环境变量和日期问题
我想给服务器事件添加一个时间戳,并将结果存储在日志中 我的第一个想法是:Bash sed、环境变量和日期问题,bash,unix,variables,sed,environment,Bash,Unix,Variables,Sed,Environment,我想给服务器事件添加一个时间戳,并将结果存储在日志中 我的第一个想法是: ( ./runServer.sh ) | sed "s/.*/`date +%s` & /" | xargs -0 >Server.log 2>&1 & 但sed似乎从不重新计算日期,因此所有事件都会得到相同的时间戳 现在我试图用环境变量来解决这个问题,但我找不到一个合适的方法来解决 下面这句话显然是错误的: ( ./runServer.sh ) | xargs -0 'expor
( ./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 &
有什么提示吗?谢谢。试试这个:
<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'
| awk'{打印strftime(“%Y-%m-%d%H:%m:%S”),$0;}
酱汁:试试这个:
<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'
| awk'{打印strftime(“%Y-%m-%d%H:%m:%S”),$0;}
酱汁:一步一步地做,用$()代替反勾号。试试这个,不要测试
timestamp=$(date +%s)
./runServer.sh | sed "s/.*/$timestamp & /" | .......
一步一步地做,用$()代替反勾号。试试这个,不要测试
timestamp=$(date +%s)
./runServer.sh | sed "s/.*/$timestamp & /" | .......
这显然行不通,因为日期只计算一次。这显然行不通,因为日期只计算一次。