Boucle while dans shell

Fermé
fatine12 Messages postés 12 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 5 mai 2010 - 5 mai 2010 à 13:33
fatine12 Messages postés 12 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 5 mai 2010 - 5 mai 2010 à 15:39
Bonjour , j'ai deux fichier

1.txt

S
B
A
L
K

2.txt

S
B
B
L
M

En faite pour faire la comparaison avec un moyen autre que diff et comp(ça donne pa trop par rapport à ce que je demande)
J'ai fé une boucle while

#!/bin/ksh

exec 3</home/samia/md5/md5_a.txt
exec 4</home/samia/md5/md5_b.txt

# Boucle de lecture
while true
do
#i=0 , j=0
read lig1 0<&3
read lig2 0<&4

test -z "$lig1" -a -z "$lig2" && break

echo "$lig1" >> k.ksh
echo "$lig2" >> k.ksh
#i++, j++ ( c ce que je faire )

done


en faite le defaut de ce code c'est que il repete plusieurs fois les meme lignes

cmt regler ça svp ?

en faite comme solution je pense qu il fo initialiser la 1ere ligne de chaque fichier par une variable par exemple i=0 et j=0
avec incrémentation au fur et à mesure de la boucle
(voir dans commantaire du script)


cmt puis je assurer ceci ?
merci d'avance

1 réponse

Sur tes fichiers exemples, ton bout de code, une fois corrigé, donne :
S
S
B
B
A
B
L
L
K
M

Je dois etre c... mais après ????????????????
0
fatine12 Messages postés 12 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 5 mai 2010
5 mai 2010 à 15:39
en faite ça donne
S
S
B
B
A
B
L
L
K
M
S
S
.
.
en faite je vé inclurer une condition qui va
tester
c a dire if [ '$lig1' != '$lign2]
c dans ce cas qu 'il affichera
et ce script va me permmetre d'ecrire ce que veux à l 'interieur avant d'afficher
mé bon ce que je veux mnt
c'est éliminer les redandance mé tt en gardant la boucle
merci
'
0