Le Mercredi 30 Janvier 2002 19:22, edouard boucher a �crit :
> > bonsoir, je dois r�aliser un script prenant en entr� 2 fichier du style :
> > file1
> > user1 : new-pwd
> > user2 : new-pwd
> > ...
> > file2
> > et un fichier de la forme :
> > user1 : old-pwd : autreinfo
> > user2 : old-pwd : autreinfo
> >
> > le but du jeux est d'obtenir
> > user1 : new-pwd : autreinfo
> > user2 : new-pwd : autreinfo
J'avais fait rapidement un script de ce genre une fois :
le voil� un poil adapt� : c'est pas tr�s propre, mais �a marche bien si ils
sont dans le m�me ordre.
Un conseil, faire un sort avant.
Il renvoie sur la sortie d'erreur les erreurs si les usernames ne co�ncident
pas
donc si tu fais ./rename pass1.txt passnew.txt > newpass.txt tu verras les
erreurs quand m�me.
#!/bin/bash
#script de fusion
i=1
while true; do
ligne=$(tail +$i $1 | head -n 1)
ligne2=$(tail +$i $2 | head -n 1)
#arriv� a la fin ?
if test -z "$ligne" && test -z "$ligne2"
then
exit 0
fi
#on identifie les variables
utilisateur=$(echo $ligne | cut -d ":" -f 1)
utilisateur2=$(echo $ligne2 | cut -d ":" -f 1)
info=$(echo $ligne | cut -d ":" -f 3)
newpass=$(echo $ligne2 | cut -d ":" -f 2)
if test "$utilisateur" = "$utilisateur2"
then
echo $utilisateur : $newpass : $info
else
echo Erreur ligne $i : �$utilisateur� != �$utilisateur2� 1>&2
fi
#incr�mente
i=$(($i+1))
done
Pierre