Is there a Unix utility to prepend timestamps to stdin?
awk, shell, unix
Solution
Could try using `awk`:
<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'
You may need to make sure that `<command>` produces line buffered output, i.e. it flushes its output stream after each line; the timestamp `awk` adds will be the time that the end of the line appeared on its input pipe.
If awk shows errors, then try `gawk` instead.
Problem
I ended up writing a quick little script for this in Python, but I was wondering if there was a utility you could feed text into which would prepend each line with some text -- in my specific case, a timestamp. Ideally, the use would be something like: ``` cat somefile.txt | prepend-timestamp ``` (Before you answer sed, I tried this: ``` cat somefile.txt | sed "s/^/`date`/" ``` But that only evaluates the date command once when sed is executed, so the same timestamp is incorrectly prepended to each line.)