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

Re: aide pour script de chaine de caract



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



Reply to: