Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 19h27   #1
Membre émérite
 
Avatar de avigeilpro
 
Homme Sébastien PIERRE
Ambulancier
Inscription : janvier 2004
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sébastien PIERRE
Âge : 26
Localisation : France, Creuse (Limousin)

Informations professionnelles :
Activité : Ambulancier
Secteur : Transports

Informations forums :
Inscription : janvier 2004
Messages : 869
Points : 929
Points : 929
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
avigeilpro est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 12/05/2011, 19h58   #2
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 551
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 551
Points : 4 271
Points : 4 271
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
__________________
Alea Jacta Test!
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 12/05/2011, 21h03   #3
Membre émérite
 
Avatar de avigeilpro
 
Homme Sébastien PIERRE
Ambulancier
Inscription : janvier 2004
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sébastien PIERRE
Âge : 26
Localisation : France, Creuse (Limousin)

Informations professionnelles :
Activité : Ambulancier
Secteur : Transports

Informations forums :
Inscription : janvier 2004
Messages : 869
Points : 929
Points : 929
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
avigeilpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/05/2011, 21h17   #4
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 551
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 551
Points : 4 271
Points : 4 271
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
__________________
Alea Jacta Test!
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/05/2011, 07h22   #5
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
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 : 3 534
Points : 7 743
Points : 7 743
Code :
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
frp31 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/05/2011, 11h48   #6
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
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
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/05/2011, 12h40   #7
Membre émérite
 
Avatar de avigeilpro
 
Homme Sébastien PIERRE
Ambulancier
Inscription : janvier 2004
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sébastien PIERRE
Âge : 26
Localisation : France, Creuse (Limousin)

Informations professionnelles :
Activité : Ambulancier
Secteur : Transports

Informations forums :
Inscription : janvier 2004
Messages : 869
Points : 929
Points : 929
Citation:
Envoyé par frp31 Voir le message
Code :
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 :
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 :
Citation:
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
avigeilpro est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/05/2011, 12h46   #8
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
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 : 3 534
Points : 7 743
Points : 7 743
Citation:
Envoyé par avigeilpro Voir le message
ici ce que l'on cherche c'est plutôt ça :
Code :
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érieur à bash 4

Finalement, j'ai opter pour une autre solution, je met tout dans un fichier sous la forme :


puis un petit grep -F "bonjour" et un cut -d'|' -f2 pour récupérer ce dont j'ai besoin
utilises KSH dans ce cas.
frp31 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 19h18   #9
Membre émérite
 
Avatar de avigeilpro
 
Homme Sébastien PIERRE
Ambulancier
Inscription : janvier 2004
Messages : 869
Détails du profil
Informations personnelles :
Nom : Homme Sébastien PIERRE
Âge : 26
Localisation : France, Creuse (Limousin)

Informations professionnelles :
Activité : Ambulancier
Secteur : Transports

Informations forums :
Inscription : janvier 2004
Messages : 869
Points : 929
Points : 929
mon bricolage avec le fichier fonctionne bien, je crois que je vais rester la dessus, d'autant qu'il s'agit d'un petit script perso
Merci à tous pour toutes ces pistes, je les explorerais à temps perdu.
__________________
La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
Règles|FAQ|Tuto
avigeilpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h44.


 
 
 
 
Partenaires

Hébergement Web