Charles.w Posté(e) le 2 octobre 2005 Partager Posté(e) le 2 octobre 2005 Je cherche a remplacer toutes les voyelles d'un fichier par des *...et si plusieurs étoiles se suivent, les remplacer par une seule...le tout en utilisant cat et sed... La première partie de la question passe sans trop de problème...mais pour la seconde, j'avoue que j'ai un peu de mal (ca fait assez longtemps que je n'avais plus touché aux expressions régulières)... Donc pour le moment, j'ai ca... cat source | sed 's/[aeiouAEIOU]/*/g' | sed 's/\**/*/g" En gros, je remplace toutes les voyelles par des étoiles...par exemple : fjkfjhhfdaeoiusdsa -> fjkfjhhfd*****sds* et je voudrais avoir fjkfjhhfd*sds* Merci d'avance, la je sèche completement Lien vers le commentaire Partager sur d’autres sites More sharing options...
an0nyme Posté(e) le 2 octobre 2005 Partager Posté(e) le 2 octobre 2005 sed s/\*+/*/g ? (dit au pif) Edit : fait gaffe aussi aux * dans un shell, ça risque d'être embêtant si elles sont évaluées :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
nonas Posté(e) le 2 octobre 2005 Partager Posté(e) le 2 octobre 2005 cat /tmp/test.txt | sed -e "s/[aeiouyAEIOUY]/*/g" -e "s/[*][*]*/*/" ? Oublie pas le y ça la fouttrait mal Lien vers le commentaire Partager sur d’autres sites More sharing options...
Charles.w Posté(e) le 2 octobre 2005 Auteur Partager Posté(e) le 2 octobre 2005 sed s/\*+/*/g ?(dit au pif) Edit : fait gaffe aussi aux * dans un shell, ça risque d'être embêtant si elles sont évaluées :) J'avais essayé aussi, ca ne marche pas @Nonas -> Oki, je reboote, et je teste ca Sinon, pour ce qui est du Y, ouep, mais ca dépend des auteurs (la lettre y peut ou non être considérée comme une voyelle)...dans mon cas, il semblerait que non...sinon, au pire, ca fait deux lettres à rajouter Encore merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tintaspi Posté(e) le 2 octobre 2005 Partager Posté(e) le 2 octobre 2005 ça ? cat test.txt | sed -e "s/[aeiouyAEIOUY]/*/g" -e "s/\**\*/*/g" Lien vers le commentaire Partager sur d’autres sites More sharing options...
Charles.w Posté(e) le 2 octobre 2005 Auteur Partager Posté(e) le 2 octobre 2005 Où ca (pour éclater un peu le sed...ca revient au même, mais bon, ca montre que les deux traitements sont pas effectués en un seul passage... cat $1 | sed 's/[aeiouAEIOU]/*/g' | sed 's/[*][*]*/*/g' cat $1 | sed 's/[aeiouAEIOU]/*/g' | sed 's/\*\**/*/g' En tout cas, merci à tous Sinon, y'aurais pas un peu plus de doc, autre que man sed ou info sed (bien que ce soit déjà pas mal ) Sinon, en gros, il me manquait une répétition de '\*' Je m'en rappellerais ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
nonas Posté(e) le 2 octobre 2005 Partager Posté(e) le 2 octobre 2005 Y'a plus de choses dans le man awk sur les expressions régulières. Sinon Lien vers le commentaire Partager sur d’autres sites More sharing options...
Charles.w Posté(e) le 3 octobre 2005 Auteur Partager Posté(e) le 3 octobre 2005 Oki, merci Sinon, dans mon cas, y'avais aussi voyelles="aeiouyAEIOUY" cat $1 | sed -e "s/[$voyelles][$voyelles]*/*/g" | cat >> $2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.