[Shell] extraire une chaine

Résolu
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,
Configuration: Windows XP
Safari 525.19

2 réponses

  1. Modérateur
    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
    1. Merci c'est parfait!!!

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