suggested addition to 'date'

Sam Leffler sam at errno.com
Sat Aug 12 04:04:18 UTC 2006


Julian Elischer wrote:
> Sam Leffler wrote:
> 
>> Sam Leffler wrote:
>>  
>>
>>> Julian Elischer wrote:
>>>   
>>>> At various times I've wanted to add timestamps to logfiles as they are
>>>> generated..
>>>>
>>>> usually this has involved perl or something to do it.
>>>>
>>>> finally I broke down and just added  a small bit to date(1)
>>>>
>>>> the -s option tells date to add a timestamp on the front of every line
>>>> read in through stdin
>>>> and put it out through stdout.   teh format of the datestamp is
>>>> governed
>>>> exactly as usual so:
>>>>
>>>> %ls | ./date -s +"%+: "
>>>> Fri Aug 11 19:53:34 PDT 2006: CVS
>>>> Fri Aug 11 19:53:34 PDT 2006: Makefile
>>>> Fri Aug 11 19:53:34 PDT 2006: date
>>>> Fri Aug 11 19:53:34 PDT 2006: date.1
>>>> Fri Aug 11 19:53:34 PDT 2006: date.1.gz
>>>> Fri Aug 11 19:53:34 PDT 2006: date.c
>>>> Fri Aug 11 19:53:34 PDT 2006: date.o
>>>> Fri Aug 11 19:53:34 PDT 2006: extern.h
>>>> Fri Aug 11 19:53:34 PDT 2006: netdate.c
>>>> Fri Aug 11 19:53:34 PDT 2006: netdate.o
>>>> Fri Aug 11 19:53:34 PDT 2006: vary.c
>>>> Fri Aug 11 19:53:34 PDT 2006: vary.h
>>>> Fri Aug 11 19:53:34 PDT 2006: vary.o
>>>> %ls | ./date -s +"%s: "
>>>> 1155351474: CVS
>>>> 1155351474: Makefile
>>>> 1155351474: date
>>>> 1155351474: date.1
>>>> 1155351474: date.1.gz
>>>> 1155351474: date.c
>>>> 1155351474: date.o
>>>> 1155351474: extern.h
>>>> 1155351474: netdate.c
>>>> 1155351474: netdate.o
>>>> 1155351474: vary.c
>>>> 1155351474: vary.h
>>>> 1155351474: vary.o
>>>> %
>>>> I attach the diff.
>>>> I'm sure that someone who is a more competent practicioner of
>>>> userland C
>>>> programming
>>>> can probably clean this up abit.
>>>>
>>>> do people think this is a worthwhile addition?
>>>>
>>>> An easy to imagine use for this is to add it in the makefile for
>>>> /usr so
>>>> that "make buildworld" datestamped its output
>>>> (for example).
>>>>
>>>> it makes it easy to timestamp output from a console logger for example:
>>>>     
>>> pbj% ls | sed -e "s/^/`date +'%+: '`/"
>>> Fri Aug 11 20:18:05 PDT 2006: Desktop
>>> Fri Aug 11 20:18:05 PDT 2006: Desktop DB
>>> Fri Aug 11 20:18:05 PDT 2006: Desktop DF
>>> Fri Aug 11 20:18:05 PDT 2006: Documents
>>> Fri Aug 11 20:18:05 PDT 2006: Library
>>> Fri Aug 11 20:18:05 PDT 2006: Movies
>>>     ...
>>>   
>>
>> I figure you won't like that 'cuz it pastes the same date stamp on every
>> line so here's another offering:
>>
>> pbj% ls | awk '{ "date +'%+'" | getline x; print x ": " $0; }'
>> Fri Aug 11 20:50:42 PDT 2006: Desktop
>> Fri Aug 11 20:50:42 PDT 2006: Desktop DB
>> Fri Aug 11 20:50:42 PDT 2006: Desktop DF
>> Fri Aug 11 20:50:42 PDT 2006: Documents
>> Fri Aug 11 20:50:42 PDT 2006: Library
>> Fri Aug 11 20:50:42 PDT 2006: Movies
>>  
>>
> It still does a fork followed by an exec of shell followed by an exec of
> date once for every line.
> Do you think it is a BAD thng to add or are you just pointing out that
> it is possinle to do it in other ways?
> 
> 

I think you should use perl or one of the myriad of other options and
not bloat basic system utilities.

	Sam



More information about the freebsd-current mailing list