Productive Linux


 Subscribe via Feedburner in a reader

Enter your email address:

Delivered by FeedBurner


Don't have an account?
Sign up to
Forgot your password?

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

Comments disabled