Converter arquivos CSV para Ldif
Publicado por Ronil Estevam (última atualização em 10/08/2010)
[ Hits: 7.402 ]
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
organização_topografia quarto arquivo
Conexão Modem speedtouch + Backtrack
Nenhum comentário foi encontrado.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
minha maquina foi desinstalada o firefox eu preciso reinstalar tentei... (5)
windows 11 versao 24H2 não aplicando politicas samba4.21.1 GPO (4)
Não consigo instalar o WineHQ no meu notebook vaio FE15 (Debian) (7)