Les Allergies
Alimentaires
Posez votre question Signaler

Comparer éléments tableau avec un fichier sh [Résolu]

yoopi - Dernière réponse le 21 mars 2011 à 21:04
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
Lire la suite 

Comparer éléments tableau avec un fichier sh »

7 réponses
Réponse
+2
moins plus
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
;-))

yoopi - 21 janv. 2009 à 17:15
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
jipicy- 21 janv. 2009 à 17:16
De rien, bonne soirée à toi aussi ;-)
noneight - 21 mars 2011 à 21:04
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
Ajouter un commentaire
Réponse
+0
moins plus
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
jipicy- 22 janv. 2009 à 20:02
Avec ksh :
$ set -A tableau un deux trois

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

$ echo ${tableau[1]}
deux

$ echo ${tableau[0]}
un

$ echo ${#tableau[*]}
3

$
;-))
Ajouter un commentaire
Ce document intitulé « comparer éléments tableau avec un fichier sh » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?