Obter lista de cidades do IBGE
Publicado por Raimundo Alves Portela (última atualização em 11/06/2012)
[ Hits: 7.598 ]
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
Backup Diario excluindo o antigo
MACGEN V1.0 MAC Address Generator
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
Programa fora de escala na tela do pc (7)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









