[SHELL] tr de tous les caracteres bizarres
Résolu
magicwill
Messages postés
94
Statut
Membre
-
magicwill Messages postés 94 Statut Membre -
magicwill Messages postés 94 Statut Membre -
Bonjour,
Je cherche à utiliser la commande tr pour traduire tous les caracteres bizarres en _.
Je dois conserver les points dans le texte en entrée...
echo "$VARIABLE" | tr [:punct:] '_'
Ca marche, sauf que ça enleve les points...et j'en ai besoin...!
Je veux tout autorisé y compris les é, etc... sauf le point. et les caracteres bizarres...
Est-ce que quelqu'un a une solution?
Meme en passant par plusieurs variables..peu m'importe!!
Merci! je galère depuis un moment...
Je cherche à utiliser la commande tr pour traduire tous les caracteres bizarres en _.
Je dois conserver les points dans le texte en entrée...
echo "$VARIABLE" | tr [:punct:] '_'
Ca marche, sauf que ça enleve les points...et j'en ai besoin...!
Je veux tout autorisé y compris les é, etc... sauf le point. et les caracteres bizarres...
Est-ce que quelqu'un a une solution?
Meme en passant par plusieurs variables..peu m'importe!!
Merci! je galère depuis un moment...
Configuration: Windows XP Internet Explorer 7.0
3 réponses
-
Pourquoi ne pas inverser le problème ?
| tr -c [[:alnum:]\.] '_'
C'est-à-dire tout ce qui n'est pas alphanumérique ou un point devient "_"...
Pour les accents français, est-ce que votre shell/tr accepte ces caractères et la définition de :alnum: les comprend-il ?
Sinon Perl est votre ami car les dernières versions supportent bien Unicode. Perl a également un opérateur "tr".
P. A.
- o - O - o -
Unicode 5.0 en pratique ? -
Salut,
Je ne pense pas qu'on puisse exclure un caractère d'une classe d'appartenance.
Voilà une solution avec "sed", à toi de mettre ce que tu veux entre les crochets :[tmpfs]$ echo ${var} le . le ; les : et la , encore un . et une autre , ... [tmpfs]$ echo ${var} | sed 's/[;:,]/_/g' le . le _ les _ et la _ encore un . et une autre _ ... [tmpfs]$;-))
-
Merci pour toutes vos solutions...
Elles m'ont été utiles... JCa marche!
Merci à vous!