IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Comparaison de 2 tableaux shell en bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Par défaut Comparaison de 2 tableaux shell en bash
    Bonjour à tous et à toutes,

    j'ai commencé un script mais je n'arrive pas à le terminer,

    j'aimerai comparer les éléments d'un tableau de référence avec les éléments d'un autre tableau.

    mon résultat sera la liste des éléments qui sont dans mon tableau référence ne se retrouvant pas dans l'autre tableau.

    tableau A (référence) et tableau B

    tous les éléments du tableau A doivent se retrouver dans le tableau B

    si dans le tableau B, il me manque un élément du tableau A alors il faut le préciser dans un nouveau fichier.

    j'ai commencé par envoyer des commandes et rediriger les résultats dans des fichiers puis j'ai lu les fichiers et ai envoyé chaque ligne de mon fichier dans une ligne de tableau.

    voici ce que j'ai pour le moment :

    --------------------------------------------------------------

    #!/bin/sh

    # recuperation des process qui tournent dans un fichier

    /bin/ps -u $LOGNAME -o args > chemin_complet/test_process.txt



    # declaration d un tableau

    declare -a mon_tableau

    i=0

    echo " "


    # boucle pour mettre chaque ligne de mon fichier dans un tableau

    while read line

    do

    mon_tableau[i]=$line
    let i+=1

    done < chemin_complet/test_process.txt


    # calcul total des elements du tableau

    nb_element=${#mon_tableau[@]}

    echo $nb_element



    # verification de chaque ligne recue dans le tableau

    cpt=0

    while [ "$cpt" -lt "$nb_element" ]

    do

    echo ${mon_tableau[$cpt]}
    let cpt+=1

    done



    # construction du tableau de references

    declare -a mon_tableau_ref

    j=0

    echo " "

    while read line

    do

    mon_tableau_ref[j]=$line
    let j+=1

    done < chemin_complet/ref_process.txt

    pouvez-vous m'aider pour la suite ?

    j'ai déjà cherché sur google et rien ne semble solutionner mon problème.

    il y a également un topic dans se forum qui parlait de comparaison de tableau mais celui-ci ne répondait pas non plus à ma demande.

    d'avance merci pour votre coup de pouce

    je pourrai également envisager une solution du style,
    lire le fichier (ref_process.txt) avec les éléments de références via une boucle "while read line" et avoir une boucle interne qui comparerait la ligne courante avec les éléments du tableau.

    qu'en pensez-vous ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Bonjour,

    Pourrais-tu commencer par mettre ton bout de code entre les balises code et de l'indenter correctement. La lecture de ton script n'en sera que plus aisée.

Discussions similaires

  1. PL/SQL COMPARAISON DE DEUX TABLEAUX APRES BULK
    Par mimi_été dans le forum PL/SQL
    Réponses: 5
    Dernier message: 30/06/2009, 12h14
  2. [Tableaux] Comparaison de 2 tableaux
    Par vodasan dans le forum Langage
    Réponses: 9
    Dernier message: 10/01/2008, 08h51
  3. Comparaison de 2 tableaux
    Par altecad dans le forum Web
    Réponses: 2
    Dernier message: 11/05/2007, 19h03
  4. Réponses: 31
    Dernier message: 07/12/2006, 11h46
  5. Comparaison de deux tableaux
    Par siaoly dans le forum Langage
    Réponses: 5
    Dernier message: 27/06/2006, 19h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo