Tableau shell avec resultat de grep | awk

Résolu
yoopi -  
 Youssef -
Bonjour,

après avoir executé un grep 'qqch' nomdefichier | awk -F" : " '{ print $2 }'

j'obtiens une liste telle que

23654
12345
98765
25634
48569
75235
55992
21456
12458
...

il y a une vingtaine de ligne

je voudrais mettre ces données dans un tableau afin de pouvoir les comparer par la suite avec les résultats de la meme commande mais dans un autre fichier afin de savoir si ils y a des numeros qui manquent ou pas

la première ligne est créée automatiquement (ce sont des numeros d identidiant de personnes qui se connectent) et la 2e liste est la liste complète des identifiants existant dans un fichier
Configuration: Linux
Firefox 3.0.5

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Une façon de faire en bash :
    [tmpfs]$ cat toto
    23654
    12345
    98765
    25634
    48569
    75235
    55992
    21456
    12458
    
    [tmpfs]$  cat bar.sh
    #! /bin/sh
    
    #set -xv
    
    IFS=$'\n'
    tab=( $( cat toto ) )
    
    i=0
    while [ "$i" -lt "${#tab[*]}" ]
    do
    echo "Element $((i+1)) du tableau : ${tab[$i]}"
    ((i++))
    done
    
    [tmpfs]$ ./bar.sh
    Element 1 du tableau : 23654
    Element 2 du tableau : 12345
    Element 3 du tableau : 98765
    Element 4 du tableau : 25634
    Element 5 du tableau : 48569
    Element 6 du tableau : 75235
    Element 7 du tableau : 55992
    Element 8 du tableau : 21456
    Element 9 du tableau : 12458
    
    [tmpfs]$ 
    ;-))
    4
    1. yoopi
       
      décidément t'es toujours là où il faut et quand il faut :-)

      merci pour le programme ca à l'air efficace

      pourrais-tu éclairer ma lanterne sur un partie du programme svp ?

      que fait : #set -xv ?

      peux tu commenter : while [ "$i" -lt "${#tab[*]}" ] ?

      d'avance merci
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > yoopi
         
        que fait : #set -xv ?
        En décommentant cette ligne ça permet de déboguer le script et de voir l'interprétation des variables (man bash)

        peux tu commenter : while [ "$i" -lt "${#tab[*]}" ] ?
        tant que la valeur de "$i" est inférieure (-lt = less than ou plus petit que) au nombre d'éléments du tableau (peut s'écrire aussi "${#tab[@]}". Tout en gardant à l'esprit que la numérotation des tableaux commence à 0 (et non pas à 1).
        0
      2. yoopi > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        ok merci

        je vais aller manger un morceau

        bon app ;-)
        0
      3. yoopi > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        re

        merci encore pour toutes tes explications

        une dernière petite question

        avec ce tableau comment pourrais-je faire pour comparer chacun des éléments du tableau avec une liste au format :

        23564
        23548
        65423
        96587
        54869
        52146
        14547
        85692

        si je rencontre l'élément de mon tableau dans la liste préétablie alors c'est OK sinon c'est WARNING ???
        0
    2. Youssef
       
      Merci beaucoup pour ton aide, t'es le meilleur tu ma aider sa fais une semaine que j'étais bloquer hahhaha quel satisfaction
      0
  2. yoopi
     
    j'ai oublié de mentionner que je travaille sous linux en bash et sous solaris 9 en csh

    j'espère que qqn pourra m'aider :-)
    1