2010-08-05 79 views
0

我想添加時間戳到服務器事件並將結果存儲在日誌中。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 & 

任何提示?謝謝。

回答

0

做一步一步來,並使用$(),而不是反引號。試試這個,沒有經過測試。

timestamp=$(date +%s) 
./runServer.sh | sed "s/.*/$timestamp & /" | ....... 
+0

這顯然是行不通的,因爲日期只評估一次。 – Sjoerd 2010-08-05 14:33:25

+0

也會遇到未更新的時間戳相同的問題 – Wrikken 2010-08-05 14:33:41