Script shell : recherche char dans variable

Résolu/Fermé
evita8 Messages postés 32 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 26 mai 2008 - 27 mars 2008 à 15:02
 magmar - 2 mai 2008 à 20:59
Bonjour,

J'ai mis le contenu d'une ligne d'un fichier dans une variable :

var=$(head -1 $1 | grep '^<.')

($1 est le fichier passé en argument dans la ligne de commande)

echo$var me donne :
<?xml version="1.0" encoding="UTF-8" ?>

Je cherche à verifier si les chaines "version" et "encoding" sont bien présentes dans ma variable.

en gros je ne sais pas comment faire pour rechercehr une chaine de caractere dans une variable

merci !
A voir également:

6 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 897
27 mars 2008 à 15:08
Salut,
$ var='<?xml version="1.0" encoding="UTF-8" ?>'
$ echo $var
<?xml version="1.0" encoding="UTF-8" ?>
$ egrep -o "version|encoding" <<< $var
version
encoding
$
;-))
0
evita8 Messages postés 32 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 26 mai 2008
27 mars 2008 à 15:39
ça marche !!
merci !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
27 mars 2008 à 15:47
Attention toutefois, là tu voulais la syntaxe pour chercher une chaîne de caractères dans une variable.

Par contre la syntaxe donnée avec "egrep" recherche la chaîne "version" OU la chaîne "encoding", de ce fait si seulement une seule des 2 chaînes est présente, le code retour de "egrep" est "VRAI".

Si ta condition doit tester la présence des 2 chaînes, alors passe le tout à "wc -l" et base ta condition sur le nombre de lignes retournées...
$ egrep -o "version|encoding" <<< $var | wc -l
2
;-))
0
Utilisateur anonyme
27 mars 2008 à 16:34
Bonjour,

question très bête .. dans la commande :
egrep -o "version|encoding" <<< $var | wc -l
pourquoi <<< ?
je vois très bien la signification pour << mais <<< je sèche

++
Poulpoul
0
evita8 Messages postés 32 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 26 mai 2008
27 mars 2008 à 17:00
J'ai enlevé le ou (|) et je vérifie séparément la présence des ceux chaînes
encore merci pour ton aide jipicy !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
27 mars 2008 à 16:41
< fichier		redirection depuis un fichier
< <(commande)		redirection depuis une commande
<<< $variable		redirection depuis une variable
;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
27 mars 2008 à 16:50
merci beaucoup pour l'info
je ne connaissais pas du tout
encore merci
++
Poulpoul
0
merci aussi de ma part pour ces info JP ;-)
0