Gnuru.org
Adventures in Linux


Calendar
10 April 2007 @ 13:33 BST
by Paul


Spending most of the time in the command line, I often use command line tools to find out what the date and time is. Simply typing date will get you the current date and time.

On the other hand the command cal will get you the a printout of the current month in calendar format. cal -y will get a print out for the current year.

I find all this sort of stuff useful. So, do the smart people at lifehacker. But then they start playing around with it and produce something like this

:
cal -y | tr '\n' '|' | sed "s/^/ /;s/$/ /;s/ $(date +%e) / $(date +%e | sed 's/./#/g') /$(date +%m | sed s/^0//)" | tr '|' '\n'

The purpose of this is to replace today's date with '##'. I'm not sure why you'd want to do this. Anyway, the code above is broken. For today, April 10th, it blocks out May 10th instead. Here's the version that correctly blocks out April 10th:

cal -y | tr '\n' '|' | sed "s/^/ /;s/$/ /;s/$(date +%e)/ $(date +%e | sed 's/./#/g') /$(date +%m)" | tr '|' '\n'
However, I can't tell the people at lifehacker, because they don't allow public comments. And anyway, it probably doesn't handle 30th and 31st properly either....


Leave a comment:

Are you human?