標準出力に出力日時をprependする

bashで標準出力に出力したログメッセージをリダイレクトでログファイルへ書き込む場合、 (自分で書かなければ)ログ出力日時が記録されなくて寂しい結果になる。

ロガー作ったり、loggerコマンドを使ったりしても良いが、 コピペで手抜きしてログ出力日時を付けたい場合、下記のようにすると楽である。

gawk (GNU awk) を使う方法

$ echo "hello, world." 2>&1 | gawk '{ print strftime(), $0; fflush() }'
月 11 21 18:04:17 JST 2016 hello, world.

perlを使う方法 (gawkが存在しない場合など)

$ echo "hello, world." 2>&1 | perl -pe 'print scalar(localtime()), " ";'
Mon Nov 21 18:04:53 2016 hello, world.

参考: linux – How to add date string to each line of a continuously written log file – Stack Overflow