[SHELL] tr de tous les caracteres bizarres

Résolu
magicwill Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -  
magicwill Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -
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...
A voir également:

3 réponses

Unicode
 
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 ?
1
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Bien joué ;-))

PS. Faut rajouter la classe "[:space:]" sans quoi...
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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]$
;-))
0
magicwill Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   3
 
Merci pour toutes vos solutions...

Elles m'ont été utiles... JCa marche!
Merci à vous!
0