2008/9/16 Flavio Junior <[EMAIL PROTECTED]>: > Da uma olhada nisso.. > Não testei mto mas parece funcionar bem, ou mais facil de melhorar. > > # awk '/^Su/{print $4}' <(LC_ALL=C ncal 02 2009) > 15 > # awk '/^Su/{print $4}' <(LC_ALL=C ncal 10 2008) > 19 > > > (O LC_ALL=C é pra garantir que não vai ser "Domingo" invés de "Sunday"). > > -- > > Flávio do Carmo Júnior aka waKKu > > 2008/9/16 Fabiano Caixeta Duarte <[EMAIL PROTECTED]>: >> Senhores, >> >> Levando em consideração que o nosso horário de verão passou de >> variável a parametrizável >> (http://www.mme.gov.br/site/news/detail.do?newsId=16838¤tArea=), >> imagino que surgirão alternativas para atualização automática. >> >> Conforme decreto, o horário de verão se inicia no terceiro domingo de >> outubro e termina no terceiro domingo de fevereiro do ano subsequente >> >> Pra quem não usa alternativas como tzdata ou similares, segue um >> script que deve funcionar se executado entre março e setembro. >> >> Eu na verdade não gostei muito da função terceiroDomingo e aceito >> sugestões de melhoria. >> >> Abraço a todos. >> >> #!/bin/bash >> # Sugestão: executar via crontab a cada dia 1º de outubro >> >> ---------------------------------------------------------- >> TMP=$(mktemp -p /tmp verao.XXXXXX) >> >> ANO_INI=$(date +%Y) >> ANO_FIM=$((ANO_INI+1)) >> >> function terceiroDomingo() { >> # $1: mês >> # $2: ano >> cal $1 $2 | sed 1,2d | awk 'NF == 7 {print}' | sed '3!d' | cut -d" " -f1 >> } >> >> DIA_INI=$(terceiroDomingo 10 $ANO_INI) >> DIA_FIM=$(terceiroDomingo 02 $ANO_FIM) >> >> cat << EOF >> $TMP >> Rule Brazil $ANO_INI only - Oct $DIA_INI 00:00 1 S >> Rule Brazil $ANO_FIM only - Feb $DIA_FIM 00:00 0 - >> >> Zone Brazil/East -3:00 Brazil BR%sT >> EOF >> >> zic $TMP >> >> rm $TMP >> ---------------------------------------------------------- >> >> -- >> Fabiano Caixeta Duarte >> Especialista em Redes de Computadores >> Linux User #195299 >> Ribeirão Preto - SP >> >> > > ------------------------------------ > > --------------------------------------------------------------------- > Esta lista não admite a abordagem de outras liguagens de programação, como > perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio > aviso. > --------------------------------------------------------------------- > Sair da lista: [EMAIL PROTECTED] > --------------------------------------------------------------------- > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > --------------------------------------------------------------------- > Servidor Newsgroup da lista: news.gmane.org > Grupo: gmane.org.user-groups.programming.shell.brazil > > Links do Yahoo! Grupos > > >
Interessante? Muito. O problema o ncal (que eu nem conhecia) não está disponível por padrão em qualquer SO/distro. No meu FreeBSD, tem. No slack, não. Mas nem tudo está perdido. Observei que por padrão, no ncal a semana começa na segunda. O mesmo pode ser obtido com o parâmetro -m do cal. Problema resolvido pra quem não tem ncal. awk 'NR == 5{print $7}' <(cal -m 10 2008) Obrigado! -- Fabiano Caixeta Duarte Especialista em Redes de Computadores Linux User #195299 Ribeirão Preto - SP