Problème regex avec bash
Résolu/Fermé
CidHighwinds
-
26 août 2017 à 13:06
dubcek Messages postés 18750 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 septembre 2024 - 27 août 2017 à 13:57
dubcek Messages postés 18750 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 septembre 2024 - 27 août 2017 à 13:57
A voir également:
- Regex bash
- Regex tiret - Forum Webmastering
- Retour à la ligne bash ✓ - Forum Shell
- Bash écrire dans un fichier - Forum Shell
- Bingo bash free - Télécharger - Divers Jeux
- Bash permission non accordée - Forum Shell
4 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 416
26 août 2017 à 13:16
26 août 2017 à 13:16
Salut,
On peut avoir un exemple de chaîne de caractères comprenant tous les caractères spéciaux dont tu parles et l'exemple de ce que tu veux en sortie ?
On peut avoir un exemple de chaîne de caractères comprenant tous les caractères spéciaux dont tu parles et l'exemple de ce que tu veux en sortie ?
Bien sur!
par exemple
En sortie
par exemple
ma_chaine="ma (chaine) [de ]carac_tères"
En sortie
ma_chaine="ma+chaine+de+caractères"
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 416
26 août 2017 à 13:56
26 août 2017 à 13:56
Avec l'exemple donné :
$ ma_chaine="ma (chaine) [de ]carac_tères"
$ echo "${ma_chaine// /+}" | sed 's/[^[:alnum:]+]//g'
ma+chaine+de+caractères
Magnifique !
Merci beaucoup, tu pourrais m'expliquer rapidement si ça ne te dérange pas ?
Ou me donner un lien explicatif ?
c'est surtout la première partie avant le pipe que je comprends pas.
Si tu ne peux pas c'est pas grave tu m'as beaucoup aidé.
merci !
Merci beaucoup, tu pourrais m'expliquer rapidement si ça ne te dérange pas ?
Ou me donner un lien explicatif ?
c'est surtout la première partie avant le pipe que je comprends pas.
Si tu ne peux pas c'est pas grave tu m'as beaucoup aidé.
merci !
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 416
26 août 2017 à 14:23
26 août 2017 à 14:23
man bash (remplacement de paramètres)
Sinon, si tu dois prendre en compte plusieurs espaces consécutifs (oublié dans ton exemple) :
$ ma_chaine="ma (chaine) [de ]carac_tères"
$ echo "${ma_chaine// /+}"
ma+(chaine)+[de+]carac_tères
Sinon, si tu dois prendre en compte plusieurs espaces consécutifs (oublié dans ton exemple) :
$ echo "${ma_chaine}"
ma (chaine) [de ]carac_tères
$ sed 's/ */+/g;s/[^[:alnum:]+]//g' <<<"${ma_chaine}"
ma+chaine+de+caractère
CidHighwinds
>
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
26 août 2017 à 14:27
26 août 2017 à 14:27
Super
Je me coucherai moins bête ce soir, bonne journée !
Je me coucherai moins bête ce soir, bonne journée !
dubcek
Messages postés
18750
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 septembre 2024
5 618
27 août 2017 à 13:57
27 août 2017 à 13:57
hello
bash only
bash only
$ c="ma (chaine) [de ]carac_tères"; echo "$c"; c=${c//+( )/+}; c=${c//[^[:alnum:]|+]/}; echo "$c"
ma (chaine) [de ]carac_tères
ma+chaine+de+caractères