Advertisement
Guest User

cep correios

a guest
Mar 2nd, 2020
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.22 KB | None | 0 0
  1. #cep dos correios
  2. #por nome de rua ou cep
  3. cep() {
  4.     if [[ -z "${*}" ]]; then
  5.         cat <<-!
  6.         Puxar CEP dos Correios
  7.         Não utilize acentos, n. de casa/apto/lote/prédio ou abreviação.
  8.         Para pesquisar por resultados semelhantes, defina SEM=1.
  9.         Exs:  ${0} Rua Higienopolis Guarulhos
  10.               SEM=1 ${0} rua higienopolis
  11.         !
  12.         return
  13.     fi
  14.  
  15.     local arg res sem
  16.  
  17.     #retirar acentos e espaços em branco
  18.     arg="$(iconv -f utf-8 -t ascii//translit <<<"${*}" | sed 's/\s/+/g')"
  19.    
  20.     #resultados semelhantes?
  21.     [[ -n "${SEM}" ]] && sem=S || sem=N
  22.    
  23.     #pegar e processar dados
  24.     res="$(curl -Ls 'http://www.buscacep.correios.com.br/sistemas/buscacep/resultadoBuscaCepEndereco.cfm' --data "relaxation=${arg}&tipoCEP=ALL&semelhante=${sem}" | 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' | tr -dc '[[:print:]\n\s\t]')"
  25.    
  26.     #montar tabela
  27.     if [[ -n "${res}" ]]; then
  28.         #echo "${res}"; return
  29.         column -dts$'\t' -N1,2,3,4 -T1,2,3 <<<"${res}"
  30.     elif [[ "${sem}" = S ]]; then
  31.         return 1
  32.     else
  33.         printf 'Buscando por resultados semelhantes..\n' 1>&2
  34.         SEM=1 "${0}" "${@}"
  35.     fi
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement