Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. #cep dos correios
  2. #por nome de rua ou cep
  3. cep() { (
  4. [[ -z "${*}" ]] && cat <<-! && return
  5. Puxar CEP dos Correios
  6. Não utilize acentos, n. de casa/apto/lote/prédio ou abreviações.
  7. Para pesquisar por resultados semelhantes, defina SEM=1.
  8. Exs: ${0} 07140-190
  9. ${0} Rua Higienopolis Guarulhos
  10. SEM=1 ${0} rua higienopolis
  11. !
  12.  
  13. #parâmetros
  14. pvar=90; pini=1; pfim="${pvar}"
  15. #retirar acentos e espaços em branco
  16. arg="$(iconv -f utf-8 -t ascii//translit <<<"${*}" | sed 's/\s/+/g')"
  17. #resultados semelhantes?
  18. [[ -n "${SEM}" ]] && sem=S || sem=N
  19.  
  20. #sub-funções
  21. #formatar tabela
  22. colf() { column -dts$'\t' -N1,2,3,4 -T1,2,3;}
  23. #puxar página e limpeza
  24. 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/&nbsp;//g' -e 's/://g' | sed -e ':a;N;s/\n\(.\)/ \1/;ta' -e 's/^\s\s*//' -e '/\[\s/d')";}
  25.  
  26. #montar tabelas
  27. if resf; [[ -n "${res}" ]]; then
  28. #primeira tabela
  29. colf <<<"${res}"
  30. #mais resultados?
  31. while (($(awk NF <<<"${res}" | wc -l)>=91)) 2>/dev/null; do
  32. pini=$((pini+pvar)); pfim=$((pfim+pvar))
  33. resf; colf <<<"${res}"
  34. done
  35. elif [[ "${sem}" = S ]]; then
  36. return 1
  37. else
  38. printf 'Buscando por resultados semelhantes..\n' 1>&2
  39. SEM=1 "${0}" "${@}"
  40. fi
  41. );}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement