Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Um pouco de fluxbox
Por removido
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Raimundo Alves Portela em (última atualização em 11/06/2012)   [ 2357 hits ]

Login: rai3mb, 923552 pontos

Homepage: http://portela.tendalinux.com

Download:


Descrição

Script com objetivo simples: baixar lista de cidades do site do IBGE, com nome, população e área.

Devem existir melhores maneiras de se fazer isso, mas é uma forma de praticar e aprender Shell Script com o uso de arrays ;-)

O script gera arquivos com comandos SQL permitindo que possam ser usados para importar em qualquer banco de dados.


[ Download: getCidadeEstados.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/bin/bash
# Criado por: Raimundo Portela <rai3mb@gmail.com>
# Objetivo: baixar dados sobre os municípios direto do IBGE
#------------------------------------------------------------------------------
function func_download() {
   for UF in ac al am ap ba ce df es go ma mg ms mt pa pb pe pi pr rj rn ro rr rs sc se sp to
   do
      wget http://www.ibge.gov.br/cidadesat/ufs/download/${UF}_mapa_e_municipios.pdf
      pdftotext -layout ${UF}_mapa_e_municipios.pdf
      egrep '[0-9]$' ${UF}_mapa_e_municipios.txt > "$UF".lista
      #rm ${UF}_mapa_e_municipios.pdf
      rm ${UF}_mapa_e_municipios.txt
   done
}

function func_getDados() {
   for UF in ac al am ap ba ce df es go ma mg ms mt pa pb pe pi pr rj rn ro rr rs sc se sp to
   do
      > "$UF".sql
      while read LINHA
      do
         DADOS=( $( echo $LINHA | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' ) )   
         PENULTIMO=$(( ${#DADOS[@]} - 2 ))
         ULTIMO=$(( ${#DADOS[@]} - 1 ))
         AREA=${DADOS[$ULTIMO]}
         POPULACAO=${DADOS[$PENULTIMO]}
         for i in $(seq $(( ${#DADOS[@]} - 3 )) )
         do
            NOME[$i - 1]=${DADOS[$i -1]}
         done
         #sqlite3 "$HOME"/Desktop/municipios.db "INSERT INTO municipios(uf, nome, populacao, area) VALUES('$UF', '${NOME[@]}', $POPULACAO, $AREA);"
         echo "INSERT INTO municipios(uf, nome, populacao, area) VALUES('$UF', '${NOME[@]}', $POPULACAO, $AREA);" >> "$UF".sql
         unset NOME
         unset DADOS
      done < "$UF".lista
   done
}

# faz o download de dados sobres os estados em PDF e gera um arquivo .lista com CIDADE|POPULACAO|AREA
func_download
# coleta os dados dos arquivos .lista e gera um arquivo .sql para posterior uso em Banco de dados
func_getDados



Scripts recomendados
   Script Linux recomendado Atheros AR242x Script de Instalaçao
   Script Linux recomendado Facilite o uso do nmap
   Script Linux recomendado Baixa e instala VirtualBox
   Script Linux recomendado Arquivo que instala o Lazarus 1.0
   Script Linux recomendado Descompactar todos os arquivos RAR de um diretório

Comentários
[1] Comentário enviado por Listeiro 037 em 11/06/2012 - 11:35h:

Taí uma coisa que estava procurando.
Verei como poderei usar.
ADD++

***ADD***
Sem exagerar, verei a possibilidade de serem coletadas as coordenadas geográficas.
***/ADD***


[2] Comentário enviado por ademar111190 em 11/06/2012 - 13:26h:

Muito bom !!!!!!!

testei aqui e funcionou perfeitamente :)


[3] Comentário enviado por uberalles em 11/06/2012 - 17:43h:

muito bacana.
vai me poupar bastante tempo de click-click.

abs,
.



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.