Tabela do Campeonato Brasileiro Direto no Terminal
Publicado por Marcos Paulo Ferreira (última atualização em 17/07/2011)
[ Hits: 9.515 ]
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
Script de Inclusão (atualização) de Repositórios para Mandriva 2008.
Remover arquivos com mais de "N" dias da Lixeira do Samba
Para quem esquece facil das coisas
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









