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

Résolu/Fermé
Gau36o Messages postés 14 Date d'inscription lundi 2 février 2015 Statut Membre Dernière intervention 20 mai 2017 - 19 mai 2017 à 11:21
Gau36o Messages postés 14 Date d'inscription lundi 2 février 2015 Statut Membre Dernière intervention 20 mai 2017 - 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 !


A voir également:

3 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
20 mai 2017 à 15:26
hello
ou avec un tableau
$ maVar="ceci 001 est un exemple 5600" 
$ t=($maVar)
$ echo ${t[0]}
ceci
$ echo ${t[1]}
001
2
Gau36o Messages postés 14 Date d'inscription lundi 2 février 2015 Statut Membre Dernière intervention 20 mai 2017
20 mai 2017 à 18:57
Salut,
Merci pour cette réponse!
Ça me convient bien mieux comme méthode :)
0
Gau36o Messages postés 14 Date d'inscription lundi 2 février 2015 Statut Membre Dernière intervention 20 mai 2017
19 mai 2017 à 13:12
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
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
19 mai 2017 à 14:40
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

0