Converter CSV para Ldif
Publicado por Alexandro Felix 21/06/2007
[ Hits: 8.617 ]
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
Restaurar backup de uma conta cpanel mesmo que ela já exista
Select tempfiles - Database Oracle
cal2svg gerador de calendários em formato vetorial SVG
INSTALA TAR GZ COM MENU GRÁFICO ZENITY
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
Sem espaço na partição home (1)
O que você está ouvindo agora? [2] (190)
Procrastinação e autossabotagem são problemas muito comuns na sociedad... (5)
warsaw parou de funcionar após atualização do sistema (solução) (10)