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

Répondre à