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 :

tableau associatif chaine


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut tableau associatif chaine
    re re re bonjour
    Me revoila avec encore un petit casse tête

    je voudrais faire un tableau qui associe une chaine à une autre.
    toto => tata
    titi => tutu
    blabla => papote

    si j'appel montableau["toto"] il me renvoie "tata".
    si j'appel montableau["titi"] il me renvoie "tutu".
    etc ...

    J'ai trouvé declare -A Array en parcourant le net. mais il semblerait que ça ne soit possible qu'avec la version 4 de bash, or j'ai la version 3.2.39

    une piste quelconque ?

    d'avance merci
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    alors sur le net j'ai trouvé ça.

    http://linuxshellaccount.blogspot.co...s-in-bash.html

    sinon tu upgrades vers bash4 ou encore tu utilises perl

  3. #3
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut
    mouai, c'est du bricolage, mais à la fin il parle de awk et perl associative array, ça voudrais dire qu'il y a une autre solution ?
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par avigeilpro Voir le message
    mouai, c'est du bricolage, mais à la fin il parle de awk et perl associative array, ça voudrais dire qu'il y a une autre solution ?
    Bah les solutions elles sont là.
    Soit tu utilises bash4 ou sinon tu as aussi awk et perl qui intègre les tableaux associatifs ou alors tu fais du bricolage avec le lien fourni plus haut si tu souhaites utiliser une version antérieure à la version 4 de bash

  5. #5
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    francois@trillian:~/tmp$ toto=1
    francois@trillian:~/tmp$ tata=2
    francois@trillian:~/tmp$ tableau[$tata]="titi"
    francois@trillian:~/tmp$ tableau[$toto]="toto"
    francois@trillian:~/tmp$ echo ${tableau[${toto}]}" "${tableau[${tata}]}
    toto titi
    francois@trillian:~/tmp$
    ça n'a rien de bricolage, c'est le fonctionnement normal des tableaux en shell bash

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Les tableaux associatifs existent dans ksh depuis la version de 1993
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut
    Citation Envoyé par frp31 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    francois@trillian:~/tmp$ toto=1
    francois@trillian:~/tmp$ tata=2
    francois@trillian:~/tmp$ tableau[$tata]="titi"
    francois@trillian:~/tmp$ tableau[$toto]="toto"
    francois@trillian:~/tmp$ echo ${tableau[${toto}]}" "${tableau[${tata}]}
    toto titi
    francois@trillian:~/tmp$
    ça n'a rien de bricolage, c'est le fonctionnement normal des tableaux en shell bash
    ici ce que l'on cherche c'est plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $ tableau["bonjour"] = "Terme utilisé pour saluer quelqu'un"
    $ tata = "bonjour"
    $ echo ${tableau[$tata]}
    Terme utilisé pour saluer quelqu'un
    Malheureusement ça ne fonctionne pas avec une version antérieure à bash 4

    Finalement, j'ai opté pour une autre solution, je mets tout dans un fichier sous la forme :
    bonjour|Terme utilisé pour saluer quelqu'un
    ...|...
    ...
    ...
    puis un petit grep -F "bonjour" et un cut -d'|' -f2 pour récupérer ce dont j'ai besoin
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Amélioration : chaine vers tableau associatif
    Par seb-65 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 23/08/2012, 10h24
  2. [PHP 5.2] Générer une chaine sql via un tableau associatif
    Par beegees dans le forum Langage
    Réponses: 5
    Dernier message: 11/04/2010, 19h36
  3. asp tableau associatif
    Par rfernandez dans le forum ASP
    Réponses: 6
    Dernier message: 19/12/2003, 18h58
  4. [langage] TRI TABLEAU ASSOCIATIF
    Par proner dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2003, 16h38
  5. [langage] Réinitialiser un tableau associatif.
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2003, 16h29

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