Comparer éléments tableau avec un fichier sh

Résolu/Fermé
Signaler
-
 noneight -
Bonjour,

j'ai un tableau tab[i], je voudrai comparer chaque élément le composant avec une liste d'un fichier toto

cat toto

23568
23548
23569
65248
75896
65423
96584

si l'élément est présent dans ma liste alors c'est OK sinon c'est WARNING

2 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
Re-
[tmpfs]$ cat toto
23654
12345
98765
25634
48569
75235
55992
21456
12458

[tmpfs]$ cat tata
23654
12345
25634
48569
55992
21456

[tmpfs]$ cat bar.sh
#! /bin/sh

#set -xv

IFS=$'\n'
tab=( $( cat toto ) )

for i in ${tab[@]}
do
grep "$i" < tata >/dev/null
if [ "$?" = 1 ]
then
echo "Elément "$i" absent."
fi
done

[tmpfs]$ ./bar.sh
Elément 98765 absent.
Elément 75235 absent.
Elément 12458 absent.

[tmpfs]$
Mais bon ce n'était pas la peine de générer un tableau pour ça, une simple boucle comme ça suffisait :
while read line
do grep "$line" tata >/dev/null
if [ "$?" = 1 ]
then echo "Elément "$line" absent."
fi
done < toto
;-))

4
ok merci

je vais essayer ta boucle magique ;-)

je te tiens au courant
0
je suis partis sur un tas de trucs en mm tps j'ai oublié de te dire q c'était parfait j'en ai fait quelques unes de boucles :-)

merci et bonne fin de soirée
0
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900 > yoopi
De rien, bonne soirée à toi aussi ;-)
0
bonsoir

Moi je voudrais faire l'inverse. Je voudrais détecter la redondance entre mon tableau et mon fichier.
Je n'y arrive pas... help please.

Merce d'avance
0

Bonsoir,

Jipicy juste une question ou deux:

suite au poste #1,
la boucle fonctionne parfaitement sachant que je suis sous AIX/ksh, mais pas le tableau

avec le tableau, j'obtiens comme message d'erreur:

./bar.sh[6]: 0403-057 Erreur de syntaxe. ligne 6 : `(' imprévu.

j'ai essayé plusieurs solutions mais en vain ... (changement de shell, #! /bin/sh par #! /bin/ksh, remplacement des parenthèses par des crochets etc ...)

les tableaux et AIX/ksh ne semblent pas faire bon ménage,

il doit y avoir un truc ....

si vous pouviez m'éclairer ...

++
Poulpoul

Bonne soirée
0
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
Avec ksh :
$ set -A tableau un deux trois

$ echo ${tableau[*]}
un deux trois

$ echo ${tableau[1]}
deux

$ echo ${tableau[0]}
un

$ echo ${#tableau[*]}
3

$
;-))
0