[Bash] Supprimer tout ce qui suit un espace dans une chaîne [Résolu]

Gau36o 14 Messages postés lundi 2 février 2015Date d'inscription 20 mai 2017 Dernière intervention - 19 mai 2017 à 11:21 - Dernière réponse : Gau36o 14 Messages postés lundi 2 février 2015Date d'inscription 20 mai 2017 Dernière intervention
- 20 mai 2017 à 18:57
Bonjour,


Débutant en Bash, j'ai une chaîne de caractère stockée dans une variable.


Par exemple : maVar="ceci 001 est un exemple 5600"

Pour supprimer une occurrence stricte telle que le ceci (en incuant l'espace suivant le mot ceci) de la chaîne ci-dessus, pas de problème, je fais :
line1=${maVar#*ceci }


Après ce traitement, j'aimerais maintenant supprimer l'espace et tout ce qui suit cet espace, après le motif 001.
Sachant que 001 est forcément un groupe de chiffre mais d'une longueur variable (entre 2 et 6 caractères).

J'ai essayé en faisant :
line2=${line1#* }

Ainsi que d'autres essais, mais je n'arrive pas au résultat souhaité....


Toute aide est la bienvenue :-)

En vous remerciant d'avance !


Afficher la suite 

4 réponses

Répondre au sujet
dubcek 17191 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention - 20 mai 2017 à 15:26
+2
Utile
1
hello
ou avec un tableau
$ maVar="ceci 001 est un exemple 5600" 
$ t=($maVar)
$ echo ${t[0]}
ceci
$ echo ${t[1]}
001
Cette réponse vous a-t-elle aidé ?  
Gau36o 14 Messages postés lundi 2 février 2015Date d'inscription 20 mai 2017 Dernière intervention - 20 mai 2017 à 18:57
Salut,
Merci pour cette réponse!
Ça me convient bien mieux comme méthode :)
Commenter la réponse de dubcek
Gau36o 14 Messages postés lundi 2 février 2015Date d'inscription 20 mai 2017 Dernière intervention - 19 mai 2017 à 13:12
0
Utile
Problème résolu finalement...

Si jamais ça peut aider quelqu'un...
line2=$(echo $line1 | cut -d " " -f 1)


Donc le résultat tronqué de la variable est stocké en $line2
Commenter la réponse de Gau36o
zipe31 35174 Messages postés dimanche 7 novembre 2010Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 19 mai 2017 à 14:40
0
Utile
Salut,

On peut faire ceci aussi :

$ maVar="ceci 001 est un exemple 5600"

$ echo "${maVar}"
ceci 001 est un exemple 5600

$ echo "${maVar#* }"
001 est un exemple 5600

$ echo "${maVar##* }"
5600

$ echo "${maVar% *}"
ceci 001 est un exemple

$ echo "${maVar%% *}"
ceci

Commenter la réponse de zipe31