Aggiungere il timestamp ad ogni riga in output

Eccomi di ritorno! È passato un po’ di tempo dall’ultimo post, un po’ per impegni vari, un po’ per pigrizia ed un po’ per i tempi di attivazione del dominio (fabiofalcinelli.it). Come va? Come state? :)

Vi descrivo di cosa avevo bisogno e di come ho risolto. Supponiamo di avere un programma che generi output, ma che questo output sia sprovvisto di timestamp. Se il programma deve essere eseguito ad intervalli regolari diventa un po’ difficile capire cosa sta succedendo analizzandone l’output che ne è stato eventualmente redirezionato su un file.

Se invece di redirezionarlo direttamente al file, lo diamo prima in pasto ad awk sarà però possibile aggiungere, per ogni riga, il timestamp di generazione della riga stessa. Ecco di seguito come, utilizzando il tool svnsync come esempio:

svnsync synchronize svn://127.0.0.1:8081 | nawk '{
"date \"+%a %b %d %Y %H:%M:%S -\"" |
getline systemDate;
close ("date \"+%a %b %d %Y %H:%M:%S -\"") ;
print systemDate, $O;
}'
>> svnsync.log

In realtà ho utilizzato nawk la cui implementazione supporta alcune funzionalità in più. Non ci dovrebbero essere problemi usando la stessa procedura con gawk.

Come al solito, spero che possa essere d’aiuto a qualcuno facendogli risparmiare qualche minuto del suo tempo :)

  1. No comments yet.

  1. No trackbacks yet.