Converter arquivos CSV para Ldif
Publicado por Ronil Estevam (última atualização em 10/08/2010)
[ Hits: 7.356 ]
Homepage: http://www.meuservidorlinux.com.br
Há alguns dias precisei converter um arquivo bem grande no formato CSV para o formato LDIF, uma vez que estava implementando a integração do OpenLDAP com uma aplicação que utilizamos aqui no trabalho. A solução seria criar um shell script que convertesse todo arquivo.csv para ldif para que o servidor ldap pudesse inserir as informações em sua base de dados.
Bem, eu não sei quase nada de programação, mas estou me esforçando para aprender, porém para não perder muito tempo procurei na internet e achei aqui mesmo no VOL um script que fazia o que eu procurava. A partir daí adaptei para a minha realidade e consegui resolver o meu problema. Agora transcrevo o script após minha adaptação. Espero que possa ser útil para alguém.
# Script para conversão de arquivos CSV para LDIF # Autor: Ronil Estevam # Adapte este Script conforme a sua necessidade #!/bin/bash clear echo echo echo " ####################Bem-Vindo ao CONVERT_CSV-LDIF (Programa de conversão CSV para LDIF)################## " echo echo "Informe o nome do arquivo a ser convertido:" #Solicita o arquivo a ser convertido read arquivo1 # Lê o arquivo informado echo "Informe o delimitador a ser utilizado:" #Solicita o delimitador utilizado no arquivo read delimitador #Lê o delimitador informado sed '1,$s/"//g' $arquivo1 > /tmp/arquivo2 # Expressão regular para retirar as aspas contidas no arquivo e dopois salva o arquivo sem aspas em /tmp/arquivo2 cont=1 #Variavél para contar as linhas do arquivo while [ $cont -le 90 ] #Comando de loop, utilizado para executar os comandos abaixo até que termine a ultima linha do arquivo( no meu caso 90) do #Faz parte do comando while ######### Trecho a ser executado até a condição do comando while ser satisfeita####### c1=$(head -n$cont /tmp/arquivo2 | cut -f1 -d"$delimitador" | tail -n1) c2=$(head -n$cont /tmp/arquivo2 | cut -f2 -d"$delimitador" | tail -n1) c3=$(head -n$cont /tmp/arquivo2 | cut -f3 -d"$delimitador" | tail -n1) c4=$(head -n$cont /tmp/arquivo2 | cut -f4 -d"$delimitador" | tail -n1) echo cn: $c1 >> arq.ldif echo dn: $c2 >> arq.ldif echo sn: $c3 >> arq.ldif echo pw: $c4 >> arq.ldif echo " " >> arq.ldif cont=`expr $cont + 1` # Finalizando a contagem das linhas do arquivo done # Finalizando o comando while ###### Fim do trecho a ser executado ############# rm /tmp/arquivo2 # Remove o arquivo temporario arquivo2 echo "Fim!!!! Os arquivos foram convertidos com sucesso" # Messagem de fim de execução do script cat arq.ldif
Sed: Numero Par ou Impar de Linhas
Scriconnsh WPA 0.1 (que raio é isso???) - Script de Conexão Wireless WPA.
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Acabei de formatar meu ssd e deu erro (3)
Desempenho abaixo do esperado - travadas e congelamento do sistema ope... (5)
Bash ao invés de Fish no CachyOS (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta