Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash sed、环境变量和日期问题_Bash_Unix_Variables_Sed_Environment - Fatal编程技术网

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

这显然行不通,因为日期只计算一次。这显然行不通,因为日期只计算一次。