Tabela do Campeonato Brasileiro Direto no Terminal
Publicado por Marcos Paulo Ferreira (última atualização em 17/07/2011)
[ Hits: 9.207 ]
Homepage: http://daemoniolabs.wordpress.com
Quem nunca precisou ver a tabela do campeonato brasileiro e gostaria de ter uma facilmente à disposição? Eu sim, apesar que raramente acompanho futebol, mesmo porque meu time nem é lá um dos melhores (América-MG :|), mas mesmo assim interesso pelos resultados. Por exemplo, quem é líder da rodada, quem tá sendo rebaixado, etc...
Pensando nisso escrevi um script frufru (saída coloridinha e tudo) que mostra no terminal a tabela de classificação do campeonato brasileiro 2011. Essa tabela é obtida através do site do terra e as informações são extraídas pelo script.
A utilização é fácil, só executar:
$ ./campbra.sh
e esperar o script gerar a tabela.
Bem, é isso. t+
#!/bin/bash # Autor: Daemonio (Marcos Paulo Ferreira) # Contato: undefinido gmail com # # [campbra.sh] # Script que mostra a tabela do campeonato brasileiro # serie a. Ele esta configurado para mostrar a tabela # do campeonato de 2011. Atraves da variavel SITE_TERRA # voce pode apontar para a pagina de uma tabela de # outro ano. O script ira funcionar somente se o terra # manter o mesmo formato da pagina. # # [Execucao] # $ ./campbra.sh # # [Dependencias] # 1) wget # # Thu Jul 7 01:47:27 BRT 2011 # Thu Jul 7 11:19:34 BRT 2011 # # Pagina usada para extrair as informacoes. SITE_TERRA='http://esportes.terra.com.br/futebol' SITE_TERRA=${SITE_TERRA}'/brasileiro/2011/seriea' SITE_TERRA=${SITE_TERRA}'/classificacao_jogos' # A pagina acima sera salva nesse arquivo. ARQUIVO_TERRA=/tmp/tabelao$$ # Essa funcao recebe as informacoes de todos # os times de uma vez so e monta uma tabela # com esses dados. function print_table() { echo -n '[1;35m' printf ' %'$ALIGN's %3s %3s %3s%3s %3s' 'Time' 'P' 'J' 'V' 'E' 'D' printf ' %3s %3s %4s %2s' 'GP' 'GC' 'SG' '%' echo '[0m' while read _zone do read _position read _name read _points read _j read _v read _e read _d read _gp read _gc read _sg read _p # Escolhe a cor apropriada para cada time. case $_zone in # Libertadores 'X1') _colorz='[1;33m' ;; # Pre Libertadores 'X2') _colorz='[0;32m' ;; # Sul Americana 'X3') _colorz='[1;36m' ;; # Rebaixados 'X4') _colorz='[1;31m' ;; # Os que nao fedem nem cheiram :) *) _colorz='[0;37m' esac # Monta uma linha da tabela (cada time). echo -n $_colorz printf '%2d %-'$ALIGN's %3d %3d %3d' $_position "$_name" $_points $_j $_v printf '%3d %3d %3d %3d %4d %3d' $_e $_d $_gp $_gc $_sg $_p echo '[m' done # Legenda. echo echo '[1;33m' '** Libertadores' '[m' echo '[1;36m' '** Pre-Libertadores' '[m' echo '[0;32m' '** Sul Americana' '[m' echo '[1;31m' '** Rebaixados :(' '[m' echo } # Obtem as informacoes de todos os times. function get_all_info() { sed -n '/<tbody>/,/<\/tbody>/p' $ARQUIVO_TERRA } # Obtem o nome dos times. Essa funcao sera usada # para obter o time com maior nome para assim fazer # um alinhamento na hora de montar a tabela. function get_team_names() { sed -n '/main team-name/s/^[^>]*>[^>]*>\([^<]*\).*/\1/p' } # Sed rulezz.. # Aqui retira-se as tags html e obtem somente as # info necessarias. function do_it_sed() { sed -n ' /<tbody>/b /<\/tbody>/q x; s/.*// ;x s/^[^"]*"[-zone]*\([^ "]*\).*/X\1/ ; H; x; s/.//; x; n s/^[^>]*>\([0-9]*\).*/\1/ ; H; n; n s/^[^>]*>[^>]*>\([^<]*\).*/\1/ ; H; n; n s/^[^>]*>\([0-9]*\).*/\1/ ; H; n :loop /^<\/tr>/bend s/<td>\([-0-9]*\).*/\1/; H; n; bloop :end g p ' } # # MAIN # # Baixando ... echo '[+] Baixando a pagina da tabela do brasileirao... Espere.' wget -q $SITE_TERRA -O $ARQUIVO_TERRA # Obtem o alinhamento para a coluna nome dos times. ALIGN=$(get_all_info | get_team_names | wc -L) ALIGN=$((ALIGN+1)) # Do the job. :) get_all_info | do_it_sed | print_table # Remove arquivos temporarios. rm -f $ARQUIVO_TERRA # EOF
InstallDPKG - Instalando pacotes DEB no Slackware
Script para executar o giFT daemon e uma interface de usuário
Script em Xdialog para montar / desmontar dispositivos
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (2)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta