sed, переменная окружения и проблема с датой - PullRequest
0 голосов
/ 05 августа 2010

Я хочу добавить метку времени к событиям на сервере и сохранить результат в журнале.

Моя первая идея была:

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

4 голосов
/ 05 августа 2010

Попробуйте это:

<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'

Соус: Существует ли утилита Unix для добавления меток времени к строкам текста?

0 голосов
/ 05 августа 2010

делайте это шаг за шагом и используйте $ () вместо обратных кавычек. Попробуйте это, не проверено.

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