[Smaug] A quick scripting puzzle
Anthony Ettinger
apwebdesign at yahoo.com
Sat Nov 19 10:59:35 PST 2005
ettinger at spring ~ $ cal 12 2005|sort -n|tail -1|cut
-c1,2
tail: `-1' option is obsolete; use `-n 1' since this
will be removed in the future
25
--- Peter Belew <abcruzww at gmail.com> wrote:
> Right.
>
> On 11/19/05, Anthony Ettinger
> <apwebdesign at yahoo.com> wrote:
> > 1,2?
>
> Yes, the first 2 characters of the line, which might
> contain a whole
> week of dates. So this cuts out the first 2
> characters. Example -
>
>
> $ cal 12 2005|sort -n|tail -1
> 25 26 27 28 29 30 31
>
> $ cal 12 2005|sort -n|tail -1|cut -c1,2
> 25
>
> - Peter
> >
> > Last Sunday will always be two digits.
> >
> > --- Peter Belew <abcruzww at gmail.com> wrote:
> >
> > > Ok, it's been a couple of days - my solution is
> > >
> > > LASTSUNDAY=`cal|sort -n|tail -1|cut -c1,2`
> > >
> > > So my "Calendar Act' test script is
> > >
> > > $ for x in 1 2 3 4 5 6 7 8 9 10 11 12; do
> > > > LASTSUNDAY=`cal $x 1752|sort -n|tail -1|cut
> -c1,2`
> > > > echo $x - $LASTSUNDAY
> > > > done
> > > $ cal 1752
> > >
> > > Thanks again to James for suggesting 'sort'
> (though
> > > I added the
> > > -n to make it work right). 'sort' gets rid of
> the
> > > blank lines at the end.
> > > 'grep [0-9]' will work for that too (Thanks
> Cerise
> > > for that).
> > >
> > > - Peter
> > >
> > > On 11/19/05, Peter Belew <abcruzww at gmail.com>
> wrote:
> > > > Among the commands various people (including
> > > myself) have
> > > > used, 'cal' and 'colrm' are BSD in origin.
> 'cal'
> > > seems to be
> > > > universal (UNIX-versal?) anyway, but
> apparently
> > > some solari don't
> > > > have 'colrm'. On Linux (Fedora Core 1 on this
> > > system):
> > > >
> > > > HISTORY
> > > > The colrm command appeared in 3.0BSD.
> > > >
> > > > Hmm ... cal in Linux has a BSD heritage, but
> > > apparently there's
> > > > an earlier cal from AT&T:
> > > >
> > > > HISTORY
> > > > A cal command appeared in Version 6 AT&T
> > > UNIX.
> > > >
> > > > 'colrm' does not exist on SCO UNIX 5.0.6
> > > (deepthought.armory.com);
> > > > the same system's 'cal' claims to be
> > > standards-compliant.
> > > >
> > > > My algorithm does work on deepthought, though.
> My
> > > favorite
> > > > test is like
> > > >
> > > > for x in 1 2 3 4 5 6 7 8 9 10 11 12; do
> > > > > LAST=`cal $x 1752 | rest-of-my-algorithm`
> > > > > echo $x - $LAST;
> > > > > done
> > > >
> > > > After which I do 'cal 1752' to compare the
> dates
> > > calculated with
> > > > the whole calendar for that year (worst-case
> > > test).
> > > >
> > > > - Peter
> > > >
> > > > On 11/19/05, Anthony Ettinger
> > > <apwebdesign at yahoo.com> wrote:
> > > > > gcal isn't standard
> > > > >
> > > > > --- Thomas Leavitt
> <thomas at thomasleavitt.org>
> > > wrote:
> > > > >
> > > > > > On Fri, 2005-11-18 at 08:43 -0800,
> > > > > > smaug-request at lists.svlug.org wrote:
> > > > > > > Message: 2
> > > > > > > Date: Thu, 17 Nov 2005 20:26:33 -0800
> > > > > > > From: Peter Belew <peterbe at sonic.net>
> > > > > > > Subject: [Smaug] A quick scripting
> puzzle
> > > > > > > To: SMAUG Users <smaug at lists.svlug.org>
> > > > > > > Message-ID:
> > > <20051118042633.GA6844 at sonic.net>
> > > > > > > Content-Type: text/plain;
> charset=us-ascii
> > > > > > >
> > > > > > > For amusement, create a 1-line sh or
> bash
> > > command
> > > > > > which will set
> > > > > > > a shell variable $LASTSUNDAY to the date
> > > (2-digit
> > > > > > day) of the last
> > > > > > > Sunday in the current month.
> > > > > > >
> > > > > > > Like
> > > > > > >
> > > > > > > LASTSUNDAY=`some_shell_stuff`
> > > > > > >
> > > > > > > Use only standard Unix utilities such as
> > > 'cat' or
> > > > > > 'head' or 'date'.
> > > > > > >
> > > > > > > The command shouldn't take longer than
> an
> > > > > > 80-character line.
> > > > > > >
> > > > > > > (I did this myself for creating a cron
> job
> > > which
> > > > > > sends out email
> > > > > > > announcing a meeting on the last sunday
> of a
> > > > > > month).
> > > > > > >
> > > > > > > :)
> > > > > > >
> > > > > > > Peter
> > > > > > >
> > > > > >
> > > > > > Here's my entry... I'm pretty sure,
> somewhere
> > > within
> > > > > > the byzantine array
> > > > > > of options available in gcal, there's a
> way to
> > > > > > directly produce this...
> > > > > > but I couldn't find it. However, this
> works,
> > > no
> > > > > > matter whether there are
> > > > > > four or five Sundays in a month.
> > > > > >
> > > > > > LASTSUNDAY=`gcal -i -s1|tail -n1|sed "s/[
> > > > > > ]*$//"|rev|cut -b-2|rev`
> > > > > >
> > > > > > I'm not sure how this works, but you could
> > > probably
> > > > > > cheat more, by
> > > > > > feeding gcal instructions to use some of
> these
> > > > > > commands from a file...
> > > > > >
> > > > > > and of course, I'm cheating, by using
> gcal,
> > > but hey.
> > > > > > :)
> > > > > >
> > > > > > Thomas
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > _______________________________________________
> > > > > > Smaug mailing list
> > > > > > Smaug at lists.svlug.org
> > > > > >
> http://lists.svlug.org/lists/listinfo/smaug
> > > > > > Smaug home page: http://www.scruz.org/
> > > > > >
> > > > >
> > > > >
> > > > > Anthony Ettinger
> > > > > ph: (408) 656-2473
> > > > > web: http://www.apwebdesign.com
> > > > >
> > > > >
> _______________________________________________
> > > > > Smaug mailing list
> > > > > Smaug at lists.svlug.org
> > > > > http://lists.svlug.org/lists/listinfo/smaug
> > > > > Smaug home page: http://www.scruz.org/
> > > > >
> > > > >
> > > >
> > >
> > > _______________________________________________
> > > Smaug mailing list
> > > Smaug at lists.svlug.org
> > > http://lists.svlug.org/lists/listinfo/smaug
> > > Smaug home page: http://www.scruz.org/
> > >
> >
> >
> > Anthony Ettinger
> > ph: (408) 656-2473
> > web: http://www.apwebdesign.com
> >
>
Anthony Ettinger
ph: (408) 656-2473
web: http://www.apwebdesign.com
More information about the Smaug
mailing list