[Shell] extraire une chaine

Résolu/Fermé
toutmaispasaix - 15 avril 2009 à 16:45
 toutmaispasaix - 15 avril 2009 à 17:15
Bonjour,

Encore un soucis d'extraction de chaîne (problème éternel!)

Script Shell : si possible portable et sans adhérence au shell utilisé (bash, zsh, etc)

J'ai une liste contenu dans une variable. La liste ressemble à ça :
lapin=2 poulet=42 carottes=123 patates=54321

Je voudrais vérifier si "patates" fait partis de la liste et si oui en connaitre le nombre.

attention :
- patate n'est pas forcément présent dans la liste et si oui sa position est indéfinie

Une solution en awk, sed ou cut me conviendrait parfaitement.

Cordialement,
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
15 avril 2009 à 17:03
Salut,

Une solution avec "sed" :
[tmpfs]$ echo $var
lapin=2 poulet=42 carottes=123 patates=54321

[tmpfs]$ A="patates"; echo $var | sed -n "s/.*${A}=\([^ ]*\).*/\1/p"
54321

[tmpfs]$ A="lapin"; echo $var | sed -n "s/.*${A}=\([^ ]*\).*/\1/p"
2

[tmpfs]$ A="choux"; echo $var | sed -n "s/.*${A}=\([^ ]*\).*/\1/p"

[tmpfs]$
;-))
2
toutmaispasaix
15 avril 2009 à 17:15
Merci c'est parfait!!!

En postant j'espérais secrètement que jipicy soit dans les parages :-)
0