Advertisement
rafaelsnsa

importa.sh

Jul 16th, 2016
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.85 KB | None | 0 0
  1. #!/bin/bash
  2. # Criado por: Rafael Saraiva
  3. # Contato: rafaelsnsa@gmail.com
  4. # Script para importação da tabela CNL para Mysql
  5. # A referida tabela é fornecida pela ANATEL, o download pode ser realizado no link abaix:
  6. # http://sistemas.anatel.gov.br/areaarea/N_Download/Tela.asp?varMod=Publico&SISQSmodulo=7179 > Central CNL > Fixo > Todas
  7. # O script não possui qualquer controle de erros, utilize por sua conta e risco
  8. #
  9.  
  10. # Utilizar o arquivo txt original da Anatel, sem copiar e colar o conteudo.
  11.  
  12. # Dados para conexao ao banco de dados local
  13. DBUSER=root
  14. DBPASS=root
  15. DBNAME=db01
  16.  
  17. # Nome da tabela temporaria onde serão armazenados os registros até o fim do processo. Só alterar se já existir alguma tabela com mesmo nome em seu banco de dados
  18. DBTEMPTABLE=temp
  19.  
  20. # Nome da tabela no banco para onde serão importados os dados
  21. DBENDTABLE=cnl
  22.  
  23. # Nome/local do arquivo txt original com os registros da ANATEL
  24. TXTFILE=/tmp/cnl.txt
  25.  
  26. PREFIX=`date +"%Y-%m-%d_%H-%M"`
  27. TEMP_FILE=/tmp/$PREFIX.txt
  28. touch $TEMP_FILE
  29.  
  30. iconv -f iso-8859-1 -t UTF-8 $TXTFILE | sed 'y/áÁàÀãÃâÂéÉêÊíÍóÓõÕôÔúÚçÇ/aAaAaAaAeEeEiIoOoOoOuUcC/' > $TEMP_FILE
  31.  
  32. mysql -u $DBUSER -p$DBPASS $DBNAME -e "create table $DBTEMPTABLE ( linha char(255) DEFAULT NULL ) engine=MyISAM;"
  33.  
  34. mysql  --local-infile -u $DBUSER -p$DBPASS $DBNAME -e "LOAD DATA LOCAL INFILE '$TEMP_FILE' INTO TABLE $DBTEMPTABLE LINES TERMINATED BY '\n'"
  35.  
  36. mysql -u $DBUSER -p$DBPASS $DBNAME -e "create table $DBENDTABLE (
  37. sigla_uf char(2),
  38. sigla_cnl char(4),
  39. codigo_cnl char(5),
  40. nome_localidade char(50),
  41. nome_municipio char(50),
  42. cod_area_tarifacao char(5),
  43. prefixo char(7),
  44. prestadora char(30),
  45. num_faixa_inicial char(4),
  46. num_faixa_final char(4),
  47. latitude char(8),
  48. hemisferio char(5),
  49. longitude char(8),
  50. sigla_cnl_area_local char(4)
  51. );"
  52.  
  53. mysql -u $DBUSER -p$DBPASS $DBNAME -e "insert into
  54. $DBENDTABLE (sigla_uf,sigla_cnl,codigo_cnl,nome_localidade,nome_municipio,cod_area_tarifacao,prefixo,prestadora,num_faixa_inicial,num_faixa_final,latitude,hemisferio,longitude,sigla_cnl_area_local)
  55. select
  56. rtrim( substr( linha ,  1 , 2 ) ) sigla_uf,
  57. rtrim( substr( linha ,  3 , 6 ) ) sigla_cnl,
  58. rtrim( substr( linha ,  7 , 11 ) ) codigo_cnl,
  59. rtrim( substr( linha ,  12 , 61 ) ) nome_localidade,
  60. rtrim( substr( linha ,  62 , 111 ) ) nome_municipio,
  61. rtrim( substr( linha ,  112 , 116 ) ) cod_area_tarifacao,
  62. rtrim( substr( linha ,  117 , 123 ) ) prefixo,
  63. rtrim( substr( linha ,  124 , 153 ) ) prestadora,
  64. rtrim( substr( linha ,  154 , 157 ) ) num_faixa_inicial,
  65. rtrim( substr( linha ,  158 , 161 ) ) num_faixa_final,
  66. rtrim( substr( linha ,  162 , 169 ) ) latitude,
  67. rtrim( substr( linha ,  170 , 174 ) ) hemisferio,
  68. rtrim( substr( linha ,  175 , 182 ) ) longitude,
  69. rtrim( substr( linha ,  183 , 186 ) ) sigla_cnl_area_local
  70. from
  71. $DBTEMPTABLE;"
  72.  
  73. mysql -u $DBUSER -p$DBPASS $DBNAME -e "drop table $DBTEMPTABLE;"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement