Bonjour,
Je dois mettre en forme une variable pour cela j'utilise la commande suivante
echo $var | sed 's/(//' | sed 's/)//' | sed 's/,//'
Je trouve cette façon un peut lourde et trop longue. N'y a t il pas un moyen de faire cela en un seule sed et non pas 3.
Merci
# man re
Posté par LaBienPensanceMaTuer . Évalué à 8.
[binarym@senso-rezo]:~% echo "(aaa,bbb)" | sed -e 's/[(),]//g'
aaabbb
Tu définis une classe de caractère avec [ ] que tu supprimeras et ce pour toute ta chaine ( /g ).
[^] # Re: man re
Posté par 태 (site web personnel) . Évalué à 10.
sed -e 's/@/_at_/g' -e 's/[(),]//g'
[^] # Re: man re
Posté par left . Évalué à 3.
# tr
Posté par Étienne . Évalué à 4.
echo $var | tr -d '(),'
Etienne
[^] # Re: tr
Posté par ✅ ffx . Évalué à 1.
# Pas besoin de sed
Posté par wismerhill . Évalué à 4.
echo ${var//[,\/)]/}
(note le back-slash devant le slash qui est entre les crochets car sinon il est interprété comme le séparateur de la substitution)
cf man bash
[^] # Re: Pas besoin de sed
Posté par Vincent ORDY . Évalué à 4.
D'ailleurs, ça ne marche pas sur Debian et Ubuntu qui ont dash comme shell par défaut.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.