Obter lista de cidades do IBGE
Publicado por Raimundo Alves Portela (última atualização em 11/06/2012)
[ Hits: 7.464 ]
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
Script para verficar se um pacote está instalado no Slackware
Adicionar usuários para serem autenticados pelo squid
Abrindo e Fechando a Gaveta do CD-Rom de Forma Interativa
Script para ativar a interface de rede
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (2)
Gestão de Ambiente em uma rede Linux (3)