Script shell : recherche char dans variable
Résolu
evita8
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
magmar -
magmar -
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 !
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:
- Script shell : recherche char dans variable
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
6 réponses
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 $;-))
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...
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;-))
< fichier redirection depuis un fichier < <(commande) redirection depuis une commande <<< $variable redirection depuis une variable;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question