Obter lista de cidades do IBGE
Publicado por Raimundo Alves Portela (última atualização em 11/06/2012)
[ Hits: 7.534 ]
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
Atualizando o linux pelo apt-get
Verificando existência de computadores na rede
zsh: Gerando uma sequência de números pseudo-aleatórios sem repetição
smbldap-groupCopy copiar grupos de user1 para user2
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Autologin: praticidade ou não?
Instalação do Onion OS no Miyoo Mini e Miyoo Mini Plus
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Alguém pode me recomendar um editor de textos? [RESOLVIDO] (10)
Problemas com Go-Global AppController no Ubuntu 24.04.3 (2)
Jogos baixados na Central de Aplicativos mas que não abrem (2)