Obter lista de cidades do IBGE
Publicado por Raimundo Alves Portela (última atualização em 11/06/2012)
[ Hits: 7.313 ]
Homepage: http://portelanet.com
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.
#!/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
Recarregando as configurações do SQUID sem perder as conexões
Assistente de conexão Wireless - KDialog
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% (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
Mikrotik não mostra bytes nem packtes (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código [RESOLVID... (4)
[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