Rechercher : dans
Par :

Comparer éléments tableau avec un fichier sh

Dernière réponse le 22 jan 2009 à 20:02:33 yoopi, le 21 jan 2009 à 13:24:49 
 Signaler ce message aux modérateurs

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

Configuration: Linux
Firefox 3.0.5

Meilleures réponses pour « comparer éléments tableau avec un fichier sh » dans :
Décaler les éléments d'un tableau (Rotation) -Récursivité- VoirVoici une procédure récursive qui permet de décaler tous les éléments d’un tableau d’une position à droite à partir de la position p Procedure Decaler (Var t : Tab; p, n : integer); Begin If p
[Shell] Créer un fichier vide VoirPour créer un fichier vide, il vous suffit de taper la commande suivante : > fichier Vous pouvez également utiliser la commande touch : touch fichier
MySQL - Chargement d'un fichier texte dans une table VoirPour charger une fichier texte défini comme suit : $ tail /home/user1/test.txt 'nom1',1,9 'nom2',2,3 'nom3',3,54 'nom4',4,2 'nom5',5,9 Dans une table définie comme suit : CREATE TABLE chargertest ( ...
Télécharger WinMerge VoirWinMerge est un outil libre permettant de comparer visuellement des fichiers textes et de simplifier la fusion de leurs différences. WinMerge possède des fonctionnalités avancées telles que : Coloration syntaxique Support Unicode (caractères...
Télécharger Tkdiff VoirTkDiff permet de comparer visuellement deux fichiers textes côte-à-côté. Il possède en outre des fonctionnalités avancées permettant d'aider à la fusion (merge) de deux fichiers textes. Il s'agit d'une interface graphique pour le logiciel Diff.
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...
Le format BMP VoirLe format BMP Le format BMP est un des formats les plus simples développé conjointement par Microsoft et IBM, ce qui explique qu'il soit particulièrement répandu sur les plates formes Windows et OS/2. Un fichier BMP est un fichier bitmap, c'est-à...
Les variables avec Perl VoirConcept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois...

1

jipicy, le 21 jan 2009 à 13:37:41
  • +2

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
;-))

$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

yoopi, le 21 jan 2009 à 13:51:53

Ok merci

je vais essayer ta boucle magique ;-)

je te tiens au courant

Répondre à yoopi

3

yoopi, le 21 jan 2009 à 17:15:25

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

Répondre à yoopi

4

jipicy, le 21 jan 2009 à 17:16:38

De rien, bonne soirée à toi aussi ;-)
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

5

Poulpoul, le 22 jan 2009 à 19:26:05

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

Répondre à Poulpoul

6

 jipicy, le 22 jan 2009 à 20:02:33

Avec ksh :

$ set -A tableau un deux trois

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

$ echo ${tableau[1]}
deux

$ echo ${tableau[0]}
un

$ echo ${#tableau[*]}
3

$
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy