Converter arquivos CSV para Ldif
Publicado por Ronil Estevam (última atualização em 10/08/2010)
[ Hits: 7.225 ]
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
Instalar Mplayer e todos os Codecs Facilmente
Talk Weather - Anúncio do tempo e temperatura em voz sintetizada
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Lançado Ubuntu 24.04 Final (4)
iso de sistema 32 bit em atividade (11)
ASRock H310CM-HG4 vs Linux (15)