Converter arquivos CSV para Ldif
Publicado por Ronil Estevam (última atualização em 10/08/2010)
[ Hits: 7.496 ]
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
Miguxeitor.sed - converse com seus miguxos
PKG Sync v1.0 - Utilitário para backup de pacotes deb baixados
Script para trocar textos em arquivos
Nenhum comentário foi encontrado.
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Músicas de Andrew Hulshult no DOOM (WAD)
Instalar o Apache, MySQL e PHP no Oracle Linux 8
Bloqueando telemetria no Deepin 23.1
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
erro no Light-Locker, tela não bloqueia (0)
Linux mint não desliga corretamente mesmo mexendo no grub (3)