shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Script para montar um ldif semi-off


From: Juliano Martinez
Subject: Script para montar um ldif semi-off
Date: Thu, 11 May 2006 15:59:29 -0300

Olá amigos,

A bastante tempo venho acompanhando a lista e hoje nescessito de uma
ajuda dos senhores.

Eu preciso fazer um conversor de csv para o formato do ldif, fiz meu conversor

--------------------------------------
#!/bin/bash

if [ ! $1 ] || [ ! $2 ] ; then
 echo "Usar $0 <username.csv> <dominio>"
 exit 1
fi

file="$1"
domain="$2"
user=$(echo $1 | awk -F'.csv' '{print $1}')
newfile="$user.ldif"
nick=$(cat $file  | sed -e '1d' | awk -F';' '{print $4}' | sort | uniq)

mkdir $user

cat new-head.ldif | sed -e "s/usuario/$user/g" -e
"s/dominio/$domain/g" > $user/$newfile

for data in $nick ;
do
    email=$(cat $file | sed -e '1d' | grep $data | head -1 | sed
's/;/ /g' | awk '{ if ( $2 ~ /@/ ) print $2 ; else if ( $3 ~ /@/ )
print $3 ; else if ( $4 ~ /@/ ) print $4}')
    cat new-foot.ldif | sed -e "s/usuario/$user/g" -e
"s/dominio/$domain/g" -e "s/email/$email/g" -e "s/contato/$data/g" >
$user/$newfile
done

exit

---------------------------------
######## Head
dn: ou=usuario,ou=dominio,dc=need
objectClass: inetOrgPerson
objectClass: need
ou: usuario
sn: usuario
cn: usuario
displayName: usuario
mail: usuario@dominio

-------------------------------
########Foot
dn: displayName=contato,ou=usuario,ou=dominio,dc=need
objectClass: inetOrgPerson
objectClass: needAddress
sn:
cn: contato
displayName: contato
mail: email

Ok até aqui tudo bonito, ele esta convertendo bunitinho e forma o arquivo,
mas na hora de importar para o ldap ele da erro no final do arquivo, o
que eu precisava na verdade seria uma ferramenta para olhar os \t \s
\r \n para conseguir formar o arquivo certo, sei que é meio off mas se
existir uma ferramenta assim acho que será de grande uso não só para
mim.

######
# Juliano
######


reply via email to

[Prev in Thread] Current Thread [Next in Thread]