Converter CSV para Ldif
Publicado por Alexandro Felix 21/06/2007
[ Hits: 8.579 ]
Homepage: http://rideick.blogspot.com/
Script para converter CSV para ldif.
Precisa de alguns ajustes para adequar a realidade do seu arquivo csv, pois dependendo de onde foi gerado o mesmo, as colunas variam e vc tem que pôr no esquema as variáveis definidas no arquivo.
Comigo deu certo e quebrou um galho imenso.
#!/bin/bash #Para utililar o script você terá que instalar o dialog. #Como adequar a realidade do seu arquivo CSV #As variáveis f1, f2 e f... são correspondente as colunas do csv, por tanto basta que você posicione-as de acordo com o layout do arquivo que você pode ver abaixo: #f1 = dn: (f2) (f3) (f4) #(f11) #(f12) #(f8) #sn: (f9) #(f13) #(f14) #street: (f16) (f17) #l: (f18) #st: (f19) #postalCode: (f20) #objectClass: inetOrgPerson #objectClass: top #description: (f10) #homePhone: (f15) testaTrueFalse () { if [ $? = 1 ] then exit fi } #inicializa variável onde o parâmetro é linha do comando head que será usado logo abaixo cont=1 #captura do teclado o arquivo a ser convertido arquivo=$( dialog --stdout --inputbox 'Por favor digite o nome do arquivo CSV a ser convertido sem a extensão' 0 0 "arquivoCSV") #Chama Função testaTrueFalse #define o delimitador delimitador=$( dialog --stdout --inputbox 'Defina o delimitador de seu arquivo CSV. Ex: "," ";" caso o delimitador seja tabulação digite "t" (sem as aspas)' 0 0 "arquivoCSV") #Chama Função testaTrueFalse #Expresão regular para retirar as aspas do arquivo CSV sed '1,$s/"//g' $arquivo.csv > /tmp/$arquivo.csv #Define o nome do arquivo resultante arqResult=$( dialog --stdout --inputbox 'Digite o nome do arquivo resultante' 0 0 "arquivoLDIF") #Chama Função testaTrueFalse rm $arqResult while [ $cont -le 132 ] do #Definindo variáveis para impressão do arquivo f1=$(head -n$cont /tmp/$arquivo.csv | cut -f1 -d$delimitador | tail -n1) f2=$(head -n$cont /tmp/$arquivo.csv | cut -f2 -d$delimitador | tail -n1) f3=$(head -n$cont /tmp/$arquivo.csv | cut -f3 -d$delimitador | tail -n1) f4=$(head -n$cont /tmp/$arquivo.csv | cut -f4 -d$delimitador | tail -n1) f8=$(head -n$cont /tmp/$arquivo.csv | cut -f8 -d$delimitador | tail -n1) f9=$(head -n$cont /tmp/$arquivo.csv | cut -f9 -d$delimitador | tail -n1) f11=$(head -n$cont /tmp/$arquivo.csv | cut -f11 -d$delimitador | tail -n1) f12=$(head -n$cont /tmp/$arquivo.csv | cut -f12 -d$delimitador | tail -n1) f13=$(head -n$cont /tmp/$arquivo.csv | cut -f13 -d$delimitador | tail -n1) f14=$(head -n$cont /tmp/$arquivo.csv | cut -f14 -d$delimitador | tail -n1) f15=$(head -n$cont /tmp/$arquivo.csv | cut -f15 -d$delimitador | tail -n1) f16=$(head -n$cont /tmp/$arquivo.csv | cut -f16 -d$delimitador | tail -n1) f17=$(head -n$cont /tmp/$arquivo.csv | cut -f17 -d$delimitador | tail -n1) f18=$(head -n$cont /tmp/$arquivo.csv | cut -f18 -d$delimitador | tail -n1) f19=$(head -n$cont /tmp/$arquivo.csv | cut -f19 -d$delimitador | tail -n1) #f20=`head -n$cont $arquivo.csv | cut -f20 -d, | tail -n1` #Iprimindo variáveis no arquivo resultante echo dn: $f1,$f2,$f3,$f4 >> $arqResult.ldif echo givenName: $f11 >> $arqResult.ldif echo sn: $f12 >> $arqResult.ldif echo cn: $f8 >> $arqResult.ldif echo sn: $f9 >> $arqResult.ldif echo mail: $f13 >> $arqResult.ldif echo telephoneNumber$f14 >> $arqResult.ldif echo street: $f16 $f17 >> $arqResult.ldif echo l: $f18 >> $arqResult.ldif echo st: $f19 >> $arqResult.ldif echo postalCode: $f20 >> $arqResult.ldif echo objectClass: inetOrgPerson >> $arqResult.ldif echo objectClass: top >> $arqResult.ldif echo description: $f10 >> $arqResult.ldif echo homePhone: $f15 >> $arqResult.ldif #echo /n >> $arqResult.ldif cont=`expr $cont + 1` done #echo $arquivo.csv >> $arqResult.ldif ls -s $arquiResult.ldif #chama Função testaTrueFalse echo "Arquivo Gerado" $arqResult.ldif
duplex_record: mixando áudio do microfone e saída de áudio de um programa via P
Protegendo arquivos contra acessos simultâneos
consistir variável numérica ou alfa-numérica
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Organizando seus PDF com o Zotero
Erro no realm join [Resolvido]
Um programa para baixar vídeos: Parabolic
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Sempre que vou baixar algum pacote acontece o erro dpkg (7)
como instalo panfrost-dri e o driver panfrost fork , ou panfrost (12)