On Dec 4, 12:58 pm, pk <p...@pk.invalid> wrote:
> pjodrr wrote:
> > Hello,
>
> > how can I prefix every line of output of some command with a
> > timestamp?  I thought like this:
>
> > $ exec 3> >(while read line; do echo "$(date): $line"; done)
> > $ seq 4 >&3
> > Friday, December  4, 2009  4:20:29 PM MET: 1
> > $ Friday, December  4, 2009  4:20:29 PM MET: 2
> > Friday, December  4, 2009  4:20:29 PM MET: 3
> > Friday, December  4, 2009  4:20:29 PM MET: 4
>
> > please note that the prompt ($) returns before the command completes.
> > Why is the
> > process substitution asynchronous?
> > Does anybody know of a better way to accomplish this?
>
> What's wrong with
>
> seq 4 | while read line; do echo "$(date): $line"; done

It works for me. Does it not for you? If you're asking why not do it,
then the answer is "why call an external program unnecessarily?".

Sorry, by the way, I missed what you were doing with the file
descriptor on my first read. What is it that you're trying to
accomplish? Are you doing this only to number the lines or is either
seq or the while loop a stand-in for something else?

Reply via email to