Get the date for the last Saturday of a given month

cal 04 2012 | awk 'NF <= 7 { print $7 }' | grep -v "^$" | tail -1
This is a little trickier than finding the last Sunday, because you know the last Sunday is in the first position of the last line. The trick is to use the NF less than or equal to 7 so it picks up all the lines then grep out any empty lines.
Sample Output

2 Alternatives + Submit Alt

What Others Think

Uh, not sure. It's May here and I get last day of the current month. 31 using cal 04 2012 | awk '{ $7 && X=$7 } END { print X }
Habitual · 442 weeks and 1 day ago
@habitual: that's what the '04' parameter is: April. Replace it with 05 for May.
flatcap · 442 weeks and 1 day ago
flatcap: But what if I WANT the last day of 04?
Habitual · 442 weeks ago
I think cal now supports knowing the first day of the week depending on your _NL_TIME_WEEK_1STDAY. Does your output of `cal 05 2012` equal: May 2012 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ClashTheBunny · 440 weeks and 5 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this? is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.


Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: