Identifica contatos do google que necessitam de ajustes para o nono digito telefonico

Publicado por Pedro Robson Leão (última atualização em 01/08/2012)

[ Hits: 3.831 ]

Download sp_check_phone.sh




O scrip em questão depende do pacote googlecl devidamente configurado (http://code.google.com/p/googlecl/)

O script lê a saída dos contatos do google e informa quais contatos devem ter o numero atualizado com o nono digito.

Modo de uso:
google contacts list --title '.*' --fields name,email,phone | ./sp_check_phone.sh

  



Esconder código-fonte

#!/bin/bash

function adapt() {
  local phone=${1};
  echo $((11900000000 + ( phone - 1100000000 )))
}

function adapt_udf() {
  local phone=${1};

  [ ${phone} -lt 1169999999 ] && [ ${phone} -ge 1160000000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1189999999 ] && [ ${phone} -ge 1180000000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1199999999 ] && [ ${phone} -ge 1190000000 ] && phone=$( adapt ${phone} );

  [ ${phone} -lt 1150108999 ] && [ ${phone} -ge 1150000000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150209999 ] && [ ${phone} -ge 1150200000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150289999 ] && [ ${phone} -ge 1150230000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150309999 ] && [ ${phone} -ge 1150300000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150409999 ] && [ ${phone} -ge 1150370000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150439999 ] && [ ${phone} -ge 1150430000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150489999 ] && [ ${phone} -ge 1150470000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150509999 ] && [ ${phone} -ge 1150500000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150579999 ] && [ ${phone} -ge 1150570000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150599999 ] && [ ${phone} -ge 1150590000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150609999 ] && [ ${phone} -ge 1150606000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150649999 ] && [ ${phone} -ge 1150640000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1150769999 ] && [ ${phone} -ge 1150750000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1151019999 ] && [ ${phone} -ge 1151000000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1151049999 ] && [ ${phone} -ge 1151040000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1151099999 ] && [ ${phone} -ge 1151060000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1151109999 ] && [ ${phone} -ge 1151101000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1151149999 ] && [ ${phone} -ge 1151130000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1151709999 ] && [ ${phone} -ge 1151160000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1151799999 ] && [ ${phone} -ge 1151720000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1151909999 ] && [ ${phone} -ge 1151900000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1152119999 ] && [ ${phone} -ge 1151920000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155009999 ] && [ ${phone} -ge 1152140000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155209999 ] && [ ${phone} -ge 1155200000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155309999 ] && [ ${phone} -ge 1155300000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155409999 ] && [ ${phone} -ge 1155400000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155529999 ] && [ ${phone} -ge 1155500000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155599999 ] && [ ${phone} -ge 1155540000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155709999 ] && [ ${phone} -ge 1155690000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155789999 ] && [ ${phone} -ge 1155770000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155809999 ] && [ ${phone} -ge 1155800000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1155909999 ] && [ ${phone} -ge 1155900000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156009999 ] && [ ${phone} -ge 1156000000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156029999 ] && [ ${phone} -ge 1156020000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156109999 ] && [ ${phone} -ge 1156040000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156199999 ] && [ ${phone} -ge 1156170000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156209999 ] && [ ${phone} -ge 1156202000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156309999 ] && [ ${phone} -ge 1156280000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156409999 ] && [ ${phone} -ge 1156360000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156599999 ] && [ ${phone} -ge 1156470000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156649999 ] && [ ${phone} -ge 1156640000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156809999 ] && [ ${phone} -ge 1156800000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156849999 ] && [ ${phone} -ge 1156840000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156909999 ] && [ ${phone} -ge 1156880000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156929999 ] && [ ${phone} -ge 1156920000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1156979999 ] && [ ${phone} -ge 1156970000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158109999 ] && [ ${phone} -ge 1157000000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158139999 ] && [ ${phone} -ge 1158130000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158159999 ] && [ ${phone} -ge 1158150000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158209999 ] && [ ${phone} -ge 1158200000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158309999 ] && [ ${phone} -ge 1158280000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158369999 ] && [ ${phone} -ge 1158360000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158389999 ] && [ ${phone} -ge 1158380000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158409999 ] && [ ${phone} -ge 1158400000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158509999 ] && [ ${phone} -ge 1158470000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158699999 ] && [ ${phone} -ge 1158560000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158758999 ] && [ ${phone} -ge 1158753000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1158899999 ] && [ ${phone} -ge 1158760000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159039999 ] && [ ${phone} -ge 1159000000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159059999 ] && [ ${phone} -ge 1159050000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159199999 ] && [ ${phone} -ge 1159100000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159207999 ] && [ ${phone} -ge 1159205000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159209999 ] && [ ${phone} -ge 1159209000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159309999 ] && [ ${phone} -ge 1159300000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159379999 ] && [ ${phone} -ge 1159350000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159699999 ] && [ ${phone} -ge 1159400000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159709999 ] && [ ${phone} -ge 1159706000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1159999999 ] && [ ${phone} -ge 1159800000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1176999999 ] && [ ${phone} -ge 1170110000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1179099999 ] && [ ${phone} -ge 1179090000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1179229999 ] && [ ${phone} -ge 1179220000 ] && phone=$( adapt ${phone} );
  [ ${phone} -lt 1179999999 ] && [ ${phone} -ge 1179500000 ] && phone=$( adapt ${phone} );

  echo ${phone};
}

function parseline() {
  local line=${@};
  local print=0;

  LINE=( ${line//[,;]/ /} );

  local sz=${#LINE[@]};

  local i;

  for ((i=0;i<sz;i++)) {
    local token=${LINE[$i]};

    token=${token//[+)(- ]/};
    echo ${token} | egrep -q '^011[0-9]{8}$]|^+5511[0-9]{8}$|^11[0-9]{8}$' && {
      [ ${token:0:2} -eq 55 ] && token=${token:2};
      [ ${token:0:1} -eq  0 ] && token=${token:1};

      local phone=$( adapt_udf ${token} );

      [ ${phone} -ne ${token} ] && {
   [ ${print} == 0 ] && {
     echo "${LINE[@]}";
     print=1;
   }
   printf "%10.10s = %11.11s\n" ${token} ${phone};
      }
    }
  }
}

function readline() {
  local line=;

  while read line; do
    parseline "${line}";
  done
}

function main() {
  readline;
}

main ${@};

Scripts recomendados

slackpigs - veja os pacotes que mais ocupam espaço no Slackware

Script que gera um relatório diário do sistema!!!

Gerenciamento do Samba com Dialog

Menu para servidor LDAP

Administrar squid com autenticação, simples e objetivo.


  

Comentários
[1] Comentário enviado por jarlisson em 01/08/2012 - 19:28h

esse é guerreiro! na raça! hehe
será que não dava pra usar sed ou awk com a regex?

[2] Comentário enviado por pleao em 01/08/2012 - 20:18h


[1] Comentário enviado por jarlisson em 01/08/2012 - 19:28h:

esse é guerreiro! na raça! hehe
será que não dava pra usar sed ou awk com a regex?


Cheguei sim a fazer uma versão em awk aqui no trabalho, da função de conversão.
SED não cheguei a utilizar + sim acho possível.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts