Converter arquivos CSV para Ldif
Publicado por Ronil Estevam (última atualização em 10/08/2010)
[ Hits: 7.386 ]
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
urlDecoder.sed: Decodificar de URL's
Adicionar e Remover Dominios Virtuais do Apache
PKG Sync v1.0 - Utilitário para backup de pacotes deb baixados
Nenhum comentário foi encontrado.
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
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
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
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (16)
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)