Bonsoir,
Je recherche à remplacer certains caractères accentués par d'autres contenu dans une variable :
à > a
é > e
ç > c
- > (rien) : jean-françois > jeanfrancois
J'ai vu des exemples avec "TR"... comment ca fonctionne ?
Bonsoir,
Je recherche à remplacer certains caractères accentués par d'autres contenu dans une variable :
à > a
é > e
ç > c
- > (rien) : jean-françois > jeanfrancois
J'ai vu des exemples avec "TR"... comment ca fonctionne ?
Salut
Ça marche comme ça:
tr 'àé' 'ae'
Voir la page de man![]()
Pour supprimer des caractère, regarde plutôt du côté de sed.
j'ai regardé le man, mais à chaque fois je ne comprend rien aux explications ! MDRQuestion d'habitude je pense... Je vais mis faire vous inquiétez pas !
![]()
Avec sed![]()
y/source/dest/
Transliterate the characters in the pattern space which appear in source to the corresponding character in dest.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var="jean-françois" echo $var | sed -e "y/àç/ac/" -e "s/-//g" jeanfrancois
A oui impécable ! c'est mieux que TR je trouve ! j'avais réussie à faire la même chose avec TR mais en plus long, et ca déconnait sur la conversion accents > sans accents...
et avec sed, pour supprimer plusieurs caractères en même temps c'est quoi l'opérateur à choisir ?
car pour un caractère c'est : ... -e "s/-//g"...
Utilise tr, c'est très bien.
Si ton Sed ne fait que du y, tr sera plus adapté.
tr -d supprime les caractères que tu lui donnes.
Sinon pour supprimer une classe de caractères : s/[-_,]//g
+1 pour tr, plus adapté.
tr accepte également certaines classes de caractères:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 echo 'a0b1cde2' | tr -d [0-9] # retourne 'abcde'
Partager