Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #cep dos correios
- #por nome de rua ou cep
- cep() { (
- [[ -z "${*}" ]] && cat <<-! && return
- Puxar CEP dos Correios
- Não utilize acentos, n. de casa/apto/lote/prédio ou abreviações.
- Para pesquisar por resultados semelhantes, defina SEM=1.
- Exs: ${0} 07140-190
- ${0} Rua Higienopolis Guarulhos
- SEM=1 ${0} rua higienopolis
- !
- #parâmetros
- pvar=90; pini=1; pfim="${pvar}"
- #retirar acentos e espaços em branco
- arg="$(iconv -f utf-8 -t ascii//translit <<<"${*}" | sed 's/\s/+/g')"
- #resultados semelhantes?
- [[ -n "${SEM}" ]] && sem=S || sem=N
- #sub-funções
- #formatar tabela
- colf() { column -dts$'\t' -N1,2,3,4 -T1,2,3;}
- #puxar página e limpeza
- resf() { res="$(curl -Ls 'http://www.buscacep.correios.com.br/sistemas/buscacep/resultadoBuscaCepEndereco.cfm' --data "relaxation=${arg}&tipoCEP=ALL&semelhante=${sem}&qtdrow=${pvar}&pagini=${pini}&pagfim=${pfim}" | iconv -f iso-8859-1 -t utf-8 | grep -aF 'CEP:' | sed -e 's/<td>/&\t/g' -e 's/">/&\t/g' -e 's/<[^>]*>//g' -e 's/\r\r/ /g' -e 's/\r//g' -e 's/\s\s/\n/g' -e 's/ //g' -e 's/://g' | sed -e ':a;N;s/\n\(.\)/ \1/;ta' -e 's/^\s\s*//' -e '/\[\s/d')";}
- #montar tabelas
- if resf; [[ -n "${res}" ]]; then
- #primeira tabela
- colf <<<"${res}"
- #mais resultados?
- while (($(awk NF <<<"${res}" | wc -l)>=91)) 2>/dev/null; do
- pini=$((pini+pvar)); pfim=$((pfim+pvar))
- resf; colf <<<"${res}"
- done
- elif [[ "${sem}" = S ]]; then
- return 1
- else
- printf 'Buscando por resultados semelhantes..\n' 1>&2
- SEM=1 "${0}" "${@}"
- fi
- );}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement